1. 程式人生 > >Linux系統中apache(web伺服器)配置

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
輸入正確的使用者和密碼才可以訪問成功
在這裡插入圖片描述在這裡插入圖片描述