1. 程式人生 > >apache(阿帕奇)的企業級部署

apache(阿帕奇)的企業級部署

####################################
1.阿帕奇的安裝和修改預設釋出頁
####################################
服務端為
172.25.254.128
在這裡插入圖片描述

設定yum源
在這裡插入圖片描述
安裝httpd

yum install httpd -y
在這裡插入圖片描述
安裝幫助手冊

yum install httpd-manual.noarch
在這裡插入圖片描述
重啟服務
在這裡插入圖片描述
新增火牆策略
firewall-cmd --permanent --add-service=http

載入策略
firewall-cmd --reload
在這裡插入圖片描述
移動到共享檔案位置
cd /var/www/html/

修改預設釋出頁檔案
vim index.html
隨意新增一個hello
在這裡插入圖片描述
測試
連線172.25.254.128
在這裡插入圖片描述
檢視幫助手冊
172.25.254.128/manual
右側的zn可以改為中文,前提是下載的手冊有中文版
在這裡插入圖片描述
##########################
2.修改埠和預設釋出目錄
##########################
修改埠

修改配置檔案
vim /etc/httpd/conf/httpd.conf

搜尋Lis

修改42後為8080
在這裡插入圖片描述
重啟服務

檢視埠
netstat -antlupe | grep httpd
在這裡插入圖片描述
檢視核心允許的埠
semanage port -l | grep http
在這裡插入圖片描述


新增新埠
firewall-cmd --permanent --add-port=6666/tcp
在這裡插入圖片描述
修改配置檔案
修改42後
在這裡插入圖片描述
新增到核心
semanage port -a -t http_port_t -p tcp 6666
在這裡插入圖片描述
重啟服務
在這裡插入圖片描述
修改預設釋出目錄

把埠換回80

建立目錄
mkdir /westos/web/html -p

在目錄下新增預設訪問頁
vim westos.html
在這裡插入圖片描述
修改配置檔案關聯/westos
修改預設釋出頁

167 DirectoryIndex westos.html
在這裡插入圖片描述
修改預設釋出目錄
119
DocumentRoot “/westos/web/html”
<Directory “/westos/web/html”>
Require all granted
< /Directory >
在這裡插入圖片描述


開啟核心配置檔案修改為
vim /etc/sysconfig/selinux
Enforcing
在這裡插入圖片描述
重啟後檢視
在這裡插入圖片描述

修改核心安全上下文
semanage fcontext -a -t httpd_sys_content_t ‘/westos(/.*)?’
restorecon -RvvF /westos/
在這裡插入圖片描述
重啟服務後瀏覽器連線172.25.254.128測試
在這裡插入圖片描述

#############################
3.設定虛擬主機
#############################
還原配置檔案

刪除配置檔案
rm -fr /etc/httpd/conf/httpd.conf
重灌服務
yum reinstall httpd -y
在這裡插入圖片描述
進入釋出目錄
cd /var/www/

建立westos.com下的new和music釋出目錄
mkdir westos.com/new/html -p
mkdir westos.com/music/html -p
在這裡插入圖片描述
修改new釋出檔案
vim westos.com/new/html/index.html

修改music釋出檔案
vim westos.com/music/html/index.html
在這裡插入圖片描述
修改預設釋出目錄配置檔案
cd /etc/httpd/conf.d/

vim a_default.conf

寫下
< VirtualHost default:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
< /VirtualHost>
在這裡插入圖片描述
修改news釋出配置檔案news.conf
vim news.conf

寫下
<VirtualHost *:80>
ServerName news.westos.com
DocumentRoot /var/www/westos.com/news/html
CustomLog logs/news.log combined

<Directory “/var/www/westos.com/news/html”>
Require all granted

在這裡插入圖片描述

複製news.conf到music.conf
cp news.conf music.conf
用命令修改news為music
:%s/news/music/
在這裡插入圖片描述
重啟httpd服務

真機
修改vim /etc/hosts
寫下
172.25.254.128 www.westos.com news.westos.com music.westos.com
在這裡插入圖片描述
瀏覽器測試
www.westos.com
在這裡插入圖片描述
news.westos.com
在這裡插入圖片描述
music.westos.com
在這裡插入圖片描述

##########################
4.apache的訪問控制
##########################
根據ip控制

修改配置檔案
vim a_default.conf

在後面新增
Allow後的ip是允許
Deny後的ip是拒絕
<Directory “/var/www/html”>
Order Allow,Deny
Allow from all
Deny from 172.25.254.128
< /Directory>
在這裡插入圖片描述
重啟服務

瀏覽器測試
在128連128
172.25.254.128
在這裡插入圖片描述
172.25.254.28連線128
在這裡插入圖片描述

根據使用者名稱和密碼控制

修改配置檔案
vim a_default.conf

<Directory “/var/www/html”>
AuthUserFile /etc/httpd/conf.d/http_userlist
AuthName “please input username and password !!”
AuthType basic
# Require user admin
Require valid-user
< /Directory>

在這裡插入圖片描述
其中
AuthUserFile /etc/httpd/conf.d/http_userlist 是檢視的使用者列表檔案

AuthName "please input username and password !!"是進去後顯示請輸入使用者名稱和密碼

AuthType basic是驗證方式為對比密碼和使用者名稱

Require user admin是隻允許admin使用者訪問

Require valid-user是允許所有列表使用者訪問二者不能混用

注意
把ip控制和使用者控制都寫上的話一個不對就不能登陸

根據AuthUserFile /etc/httpd/conf.d/http_userlist
我們需要建立一個使用者資訊檔案
命令為htpasswd -cm http_userllist(使用者名稱)
在這裡插入圖片描述
當我們第二次新增使用者時不需要寫c
htpasswd -m http_userllist

重啟服務後開始測試
瀏覽器測試
連線172.25.254.128
在這裡插入圖片描述
輸入密碼後
在這裡插入圖片描述

###############################
5.在連線後自動執行apache支援的語言
###############################
安裝php
在這裡插入圖片描述
重啟httpd服務

移動位置
cd /var/www/html/
建立釋出位置檔案
vim index.php

寫下

<?php phpinfo(); ?>

在這裡插入圖片描述
測試172.25.254.128/index.php
在這裡插入圖片描述
建立cgi目錄
mkdir -p /var/www/html/cgi

修改安全上下文
semanage fcontext -a -t httpd_sys_script_exec_t ‘/var/www/html/cgi(/.*)?’

重新整理
restorecon -RvvF /var/www/html/cgi
在這裡插入圖片描述
寫指令碼
vim /var/www/html/cgi/index.cgi
寫下
#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print ’ date ` ;
在這裡插入圖片描述

給執行許可權
chmod +x /var/www/html/cgi/index.cgi

修改配置檔案刪上一個實驗的設定
再寫下
<Directory “/var/www/html/cgi”>
Options ExecCGI
AddHandler cgi-script .cgi

在這裡插入圖片描述

重啟服務
在這裡插入圖片描述
測試
http://172.25.254.128/cgi/index.cgi
在這裡插入圖片描述
#########################
6.apache的https加密訪問
#########################

安裝 mod_ssl
在這裡插入圖片描述
安裝 crypto-utils
在這裡插入圖片描述
加密域名
genkey www.westos.com

第一個視窗next
在這裡插入圖片描述
第二個視窗點1024
在這裡插入圖片描述
等待加密

在這裡插入圖片描述

到這個階段時需要隨意輸入字元(亂敲鍵盤)
在這裡插入圖片描述
完成後選擇no
在這裡插入圖片描述
下一個視窗選擇next注意不能選擇選項
在這裡插入圖片描述
接下來填寫
國家
省份
城市
公司
部門
域名
完成後選擇next
在這裡插入圖片描述
修改ssl配置檔案
vim /etc/httpd/conf.d/ssl.conf

100
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt

107
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
在這裡插入圖片描述
重啟服務
安全證書位置
output will be written to /etc/pki/tls/certs/www.westos.com.crt
鑰匙位置
output key written to /etc/pki/tls/private/www.westos.com.key

在這裡插入圖片描述

客戶端
關閉火牆
位址列輸入https://172.25.254.128

出現如下
在這裡插入圖片描述
選擇高階
左下角
新增例外
在這裡插入圖片描述
左下角
確認安全例外
在這裡插入圖片描述
最後顯示釋出頁
在這裡插入圖片描述

###############################
7.設定https虛擬主機並且重寫網頁請求
###############################

建立login的訪問檔案

mkdir /var/www/westos.com/login/html/ -p

vim /var/www/westos.com/login/html/index.html
寫下
login
在這裡插入圖片描述
cd /etc/httpd/conf.d/

vim login.conf

https的預設埠是443

修改login.conf為

<VirtualHost *:443>
    SSLEngine on
    ServerName login.westos.com
    DocumentRoot /var/www/westos.com/login/html
    CustomLog logs/login.log combined
    SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
<Directory "/var/www/westos.com/login/html">
    Require all granted
 </Directory>
<VirtualHost *:80>
        ServerName login.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
< /VirtualHost>

在這裡插入圖片描述
退出儲存後重啟服務

記得關閉服務端火牆

客戶端修改解析
vim /etc/hosts
在這裡插入圖片描述

瀏覽器測試
輸入login.westos.com

在這裡插入圖片描述
###########################
8.域名訪問時自動執行指令碼
###########################

服務端
關火牆

下載wsgi檔案

下載到/var/www/cgi-bin/
在這裡插入圖片描述
給執行許可權
chmod +x webapp.wsgi
在這裡插入圖片描述
安裝mod_wsgi.x86_64
在這裡插入圖片描述
寫配置檔案
vim /etc/httpd/conf.d/webapp.conf

寫下

<VirtualHost *:80>
        ServerName webapp.westos.com
        DocumentRoot /var/www/cgi-bin
        CustomLog logs/webapp.log combined
        WSGIScriptAlias / /var/www/cgi-bin/webapp.wsgi
< /VirtualHost>

在這裡插入圖片描述
退出儲存重啟服務

客戶端

寫解析
vim /etc/hosts

webapp.westos.com
在這裡插入圖片描述
關火牆

測試用客戶端瀏覽器連線webapp.westos.com
在這裡插入圖片描述
###############################
9.安裝論壇
###############################

服務端

下載一個
Discuz_X3.2_SC_UTF8.zip
在這裡插入圖片描述
解壓到/var/www/westos.com/bbs/html/
unzip Discuz_X3.2_SC_UTF8.zip
在這裡插入圖片描述
刪除壓縮包
rm -fr Discuz_X3.2_SC_UTF8.zip
在這裡插入圖片描述
移動到upload下
cd upload/

給許可權
chmod -R 777 config
chmod -R 777 data
在這裡插入圖片描述
啟動服務
systemctl restart httpd.service

設定核心為警告模式
setenforce 0
在這裡插入圖片描述
修改許可權
chmod 777 uc_client uc_server -R
在這裡插入圖片描述
安裝資料庫軟體
yum install mariadb-server.x86_64 -y
在這裡插入圖片描述

啟動資料庫
systemctl start mariadb

修改配置檔案
vim /etc/my.cnf

寫下
skip-networking=1
在這裡插入圖片描述
重啟服務
systemctl restart mariadb.service

安裝資料庫,設定密碼
mysql_secure_installation

第一個輸入按回車

第二和第三輸入新設定的管理員密碼

剩下都選y
在這裡插入圖片描述
安裝php支援資料庫的服務
yum install php-mysql.x86_64 -y
在這裡插入圖片描述

修改配置檔案

移動到位置下
cd /etc/httpd/conf.d/

複製news的配置檔案
cp news.conf bbs.conf

批量修改news為bbs
:%s/news/bbs/
在這裡插入圖片描述
重啟httpd服務
systemctl restart httpd.service

注意
關閉火牆
設定核心為警告模式
否則很多檔案不可寫

客戶端

設定解析檔案
vim /etc/hosts

寫下bbs.westos.com
在這裡插入圖片描述
關閉火牆
systemctl stop firewall

測試
用瀏覽器連線
bbs.westos.com/upload

按步驟填寫
選擇同意
在這裡插入圖片描述
選擇下一步
在這裡插入圖片描述
選擇第一個全新安裝
選擇下一步
在這裡插入圖片描述

注意第三步時填寫的管理員密碼必須和服務端設定的mariadb密碼一樣

第四步選擇右下角進入
在這裡插入圖片描述
成功
在這裡插入圖片描述

#############################
10.apache的遠端代理(翻牆)
#############################
工作原理是vpn(server)把網頁快取到本地
客戶端(desktop)從vpn讀取網頁

把server作為服務端
ip為
172.25.254.228
gateway
172.25.254.28
dns為
114.114.114.114
在這裡插入圖片描述
配置好yum源
在這裡插入圖片描述
安裝squid.x86_64
在這裡插入圖片描述
改配置檔案

vim /etc/squid/squid.conf

56行
改為allow all

62行
去掉註釋
在這裡插入圖片描述
啟動服務squid
關閉火牆
在這裡插入圖片描述
關閉核心
在這裡插入圖片描述

真機開啟火牆策略
在這裡插入圖片描述
服務端
ping www.baidu.com
在這裡插入圖片描述
客戶端為desktop
172.25.254.128

此客戶端不能連網

開啟瀏覽器
選擇edit

選擇
Advanced

選擇network

選擇connection 後的settings
在這裡插入圖片描述
選擇手動設定地址

HTTP Proxy後寫下172.25.254.228
Port後寫下3128

勾選

Use this proxy
在這裡插入圖片描述
選擇ok退出

位址列輸入www.baidu.com
在這裡插入圖片描述
##################################
11.apache的cdn輪循部署
##################################
在企業中會需要通過遠端服務端分配任務給服務端
我們會需要兩個以上的伺服器來分擔訪問壓力
這個時候需要遠端服務端分配任務給真正的伺服器們

設定好172.25.254.28和128的釋出頁
28
在這裡插入圖片描述
128
在這裡插入圖片描述
重置虛擬機器
安裝squid

確保228無httpt服務
在這裡插入圖片描述
修改配置檔案
vim /etc/squid/squid.conf

59行到62行
寫下

http_port 80 vhost vport
cache_peer 172.25.254.28 parent 80 0 proxy-only name=web1 round-robin  weight=2
cache_peer 172.25.254.128 parent 80 0 proxy-only name=web2 round-robin
cache_peer_domain web1 web2 www.westos.com

weight的作用是設定權重,意思是28伺服器承擔兩次訪問任務,不寫weight為預設情況下只承擔一次
在這裡插入圖片描述
退出儲存重啟服務squid

關閉火牆和核心

真機上vim /etc/hosts

改解析為
172.25.254.228
在這裡插入圖片描述

瀏覽器輸入網址後開始輪循
在這裡插入圖片描述