Linux系統中apache(web伺服器)配置
一.apache的相關知識
1.定義:
Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充套件,將Perl/Python等直譯器編譯到伺服器中.
2.軟體作用:提供超文字協議,新增這個http共享協議之後成為web伺服器
二.apache的安裝部署
1.安裝
yum install httpd.x86_64 -y ##apache軟體 yum install httpd-manual -y ##apache的手冊 systemctl start httpd systemctl enable httpd
2.火牆策略
firewall-config ##影象化方式新增http和https火牆策略
firewall-cmd --permanent --add-service=http ##永久允許http
firewall-cmd --permanent --add-service=https ##永久允許https
firewall-cmd --reload ##火牆重新載入策略
firewall-cmd --list-all ##列出火牆資訊
cd /var/www/html/ ##apache的/目錄,預設釋出目錄 vim index.html ##預設釋出檔案 hello westos! systemctl restart httpd
測試:172.25.254.117
三.apache的基礎資訊
1.apache的預設訪問介面是80
netstat -antlupe | grep httpd ##預設訪問介面是80
2.預設訪問目錄 /var/www/html
3.預設共享的檔案 index.html
4.apache的配置檔案
/etc/httpd/conf ##主配置目錄
/etc/httpd/conf/httpd.conf ##主配置檔案
/etc/httpd/conf.d/ ##子配置目錄
/etc/httpd/conf.d/*.conf ##子配置檔案
rpm -qc httpd
5.預設安全上下文: http_sys_content_t
6.程式開啟預設使用者:apache
7.apache日誌: /etc/httpf/logs/*
四.apache基礎設定
1.修改預設埠為8080
1)selinux設定成強制模式
2)修改埠為8080:
vim /etc/httpd/conf/httpd.conf
43 Listen 8080 ##修改預設埠為8080
systemctl restart httpd.service
netstat -antlupe | grep httpd ##此時訪問介面是8080
3)火牆新增httpd訪問介面8080
##影象化方式 firewall-config
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
測試http:172.25.254.117:8080
2.修改預設埠為特殊埠6666
1)修改埠為6666:
vim /etc/httpd/conf/httpd.conf
43 Listen 6666 ##修改預設埠為6666
systemctl restart httpd.service
2)特殊埠需要把selinux設定成強制模式
3)火牆新增httpd訪問介面6666
firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload
4)
semanage port -l | grep http ##檢視提供httpd服務的埠
semanage port -a -t http_port_t -p tcp 6666 ##新增埠6666為提供httpd服務的埠;-a 新增 -t往那個協議裡新增
測試http:172.25.254.117:6666
3.修改預設釋出檔案:
cd /var/www/html/
vim westos.html
<h1>westos linux</h1>
vim /etc/httpd/conf/httpd.conf
43 Listen 80 ##還原預設埠為80
164 DirectoryIndex westos.html index.html
##設定訪問預設釋出檔案的先後順序。westos.html在前,index.html在後
systemctl restart httpd.service
測試http:172.25.254.117 訪問的是釋出檔案westos.html
4.修改預設釋出目錄
mkdir -p /westos/web/html ##建立新的釋出目錄
vim /westos/web/html/westos.html ##在釋出目錄下新建釋出檔案
<h1>/westos/web/html</h1>
vim /etc/httpd/conf/httpd.conf
120 DocumentRoot "/westos/web/html" ##DocumentRoot屬性用於指定根目錄路徑
121 <Directory "/westos/web/html"> ##指定URL路徑的後續請求中可以進行操作的許可權範圍屬性
122 Require all granted ##提供所有許可權
123 </Directory>
systemctl restart httpd.service
修改安全上下文
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos
測試:http:172.25.254.117 ##訪問的是你的修改的預設釋出目錄
五.apache的虛擬主機
1.還原環境
rm -fr /etc/httpd/conf/httpd.conf
yum reinstall httpd -y
systemctl start httpd
systemctl enable httpd
2.建立指定訪問news和music的釋出目錄
cd /var/www/
mkdir westos.com/news/html -p ##news.westos.com的預設釋出目錄
mkdir westos.com/music/html -p ##music.westos.com的預設釋出目錄
3.在釋出目錄下預設釋出檔案
vim /var/www/westos.com/news/html/index.html ##new.westos.com的預設釋出檔案
<h1>news</h1>
vim /var/www/westos.com/music/html/index.html ##music.westos.com的預設釋出檔案
<h1>music</h1>
4.apache的子配置目錄中建立子配置檔案
cd /etc/httpd/conf.d/ ##切換到apache的子配置目錄
vim a_defautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
vim news.conf
<VirturalHost *:80>
ServerName news.westos.com ##訪問的域名
DocumentRoot /var/www/westos.com/news/html ##訪問域名時讀取的釋出檔案
Customlog logs/news.log combined ##指定一個日誌CustomLog combined混合型日誌
</VirtualHost>
<Directory "/var/www/westos.com/news/html">
Require all granted
</Directory>
vim music.conf
<VirturalHost *:80>
ServerName musci.westos.com
DocumentRoot /var/www/westos.com/music/html
Customlog logs/music.log combined
</VirtualHost>
<Directory "/var/www/westos.com/music/html">
Require all granted
</Directory>
systemctl restart httpd
真機測試:
vim /etc/hosts ##本地解析
172.25.254.117 www.westos.com news.westos.com music.westos.com
六.內部的訪問控制
(一)基於IP的訪問控制
1.只允許IP為172.25.254.117的主機訪問
cd /etc/httpd/conf.d
vim a_defautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
<Directory "/var/www/html"> ##訪問的目錄
Order Deny,Allow ##按Deny,Allow的順序訪問
Allow from 172.25.254.117 ##只172.25.254.117允許
Deny from all ##不允許任何人訪問
</Directory>
測試:
IP為172.25.254.117的主機可以訪問
真機無法訪問
2.禁止IP為172.25.254.117的主機訪問
DocumentRoot /var/www/html
CustomLog logs/default.log combined
<Directory “/var/www/html”> ##訪問的目錄
Order Allow,Deny ##按Allow,Deny的順序訪問
Allow from all ##允許所有人
Deny from 172.25.254.117 ##不允許172.25.254.117訪問
測試:
IP為172.25.254.117的主機不可以訪問
真機(其他)可以訪問
(二)基於使用者的訪問控制
cd /etc/httpd/conf.d
htpasswd -cm http_userlist admin ##建立使用者列表,新增使用者admin並設定其密碼
cat http_userlist ##檢視使用者列表
htpasswd -m http_userlist admin1 ##在使用者列表中新增使用者admin1
vim a_defautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
<Directory "/var/www/html">
AuthUserFile /etc/httpd/conf.d/http_userlist
AuthName "please input username and password !!" ##使用者登陸提示資訊
AuthType basic ##basic 基本認證,只看使用者和密碼其他不看
## Require user admin ##只允許admin使用者可以登陸
Require valid-user ##所有列表使用者都可以
</Directory>
systemctl restart httpd
檢測:
172.25.254.117
輸入正確的使用者和密碼才可以訪問成功