http服務和apache
??提供Web網絡服務的程序有IIS,Nginx和Apache等。其中,IIS互聯網信息服務是Windows系統中默認的Web服務程序,是圖形化的網站管理工具,提供的Web網站服務,提供FTP,NMTP,SMTP等服務。IIS只能在視窗系統中使用
Apache跨平臺和安全性廣泛被認可且擁有快速,可靠,簡單的API擴展。Apache服務程序可以運行在Linux的系統,UNIX系統甚至是視窗系統中,支持基於IP,域名及端口號的虛擬主機功能,支持多種認證方式,集成有代理服務器模塊,安全套接字層(SSL),能夠實時監視服務狀態與定制日誌消息,並有著各類豐富的模塊支持。
網站服務程序
第1步:把光盤設備中的系統鏡像掛載
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom
第2步:使用Vim的文本編輯器創建蔭倉庫的配置文件
vim /etc/yum.repos.d/cdrom.repo
[cdrom]
name= cdrom
baseurl=fille:///media/cdrom
gpgcheck=0
第3步:安裝Apache服務程序
yum install httpd -y
第4步:啟用的httpd服務程序
systemctl start httpd systemctl enable httpd ln -s‘/usr/lib/systemd/system/httpd.service‘‘/etc/systemd/system/multi-user.target.wants/httpd.service‘ 地址欄中輸入http://127.0.0.1並按回車鍵,提供網絡服務的httpd的服務程序的默認頁面
配置服務文件參數
服務目錄 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
網站數據目錄 /var/www/html
訪問日誌 /var/log/httpd/access_log
錯誤日誌 /var/log/httpd/error_log
配置httpd服務
ServerRoot 服務目錄 ServerAdmin 管理員郵箱 User 運行服務的用戶 Group 運行服務的用戶組 ServerName 網站服務器的域名 DocumentRoot 網站數據目錄 Listen 監聽的IP地址與端口號 DirectoryIndex 默認的索引頁頁面 ErrorLog 錯誤日誌文件 CustomLog 訪問日誌文件 Timeout 網頁超時時間,默認為300秒
虛擬網站主機功能
??利用虛擬主機功能,可以把一臺處於運行狀態的物理服務器分割成多個“虛擬的服務器”。Apache的虛擬主機功能是服務器基於用戶請求的不同IP地址、主機域名或端口號,實現提供多個網站同時為外部提供訪問服務的技術,用戶請求的資源不同,最終獲取到的網頁內容也各不相同
基於IP地址
如果一臺服務器有多個IP地址,而且每個IP地址與服務器上部署的每個網站一一對應,這樣當用戶請求訪問不同的IP地址時,會訪問到不同網站的頁面資源
註意:在配置完畢並重啟網卡服務之後,記得檢查網絡的連通性,確保三個IP地址均可正常訪問
第1步:分別在/home/wwwroot中創建用於保存不同網站數據的3個目錄,並向其中分別寫入網站的首頁文件
mkdir -p /home/wwwroot/10
mkdir -p /home/wwwroot/20
mkdir -p /home/wwwroot/30
echo "IP:192.168.10.10" > /home/wwwroot/10/index.html
echo "IP:192.168.10.20" > /home/wwwroot/20/index.html
echo "IP:192.168.10.30" > /home/wwwroot/30/index.html
第2步:httpd服務的配置文件追加寫入三個基於IP地址的虛擬主機網站參數,保存退出,重啟httpd服務
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf
………………………………
<VirtualHost 192.168.10.10>
DocumentRoot /home/wwwroot/10
ServerName www.linuxzhao.com
<Directory /home/wwwroot/10 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.20>
DocumentRoot /home/wwwroot/20
ServerName bbs.linuxzhao.com
<Directory /home/wwwroot/20 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.30>
DocumentRoot /home/wwwroot/30
ServerName tech.linuxzhao.com
<Directory /home/wwwroot/30 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
………………………………
第3步:使用restorecon命令讓新設置的SELinux安全上下文立即生效
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
restorecon -Rv /home/wwwroot
基於主機域名
當服務器無法為每個網站都分配一個獨立IP地址的時候,可以嘗試讓Apache自動識別用戶請求的域名,從而根據不同的域名請求來傳輸不同的內容
註意:/etc/hosts是Linux系統中用於強制把某個主機域名解析到指定IP地址的配置文件
第1步:手工定義IP地址與域名之間對應關系的配置文件
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10 www.linuxzhao.com bbs.linuxzhao.com tech.linuxzhao.com
第2步:分別在/home/wwwroot中創建用於保存不同網站數據的三個目錄,並向其中分別寫入網站的首頁文件
mkdir -p /home/wwwroot/www
mkdir -p /home/wwwroot/bbs
mkdir -p /home/wwwroot/tech
echo "www.linuxzhao.com" > /home/wwwroot/www/index.html
echo "BBS.linuxzhao.com" > /home/wwwroot/bbs/index.html
echo "TECH.linuxzhao.com" > /home/wwwroot/tech/index.html
第3步:httpd服務的配置文件追加寫入三個基於主機名的虛擬主機網站參數,保存退出,重啟httpd服務
vim /etc/httpd/conf/httpd.conf
………………………………
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/www"
ServerName "www.linuxzhao.com"
<Directory "/home/wwwroot/www">
AllowOverride None
Require all granted
</directory>
</VirtualHost>
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/bbs"
ServerName "bbs.linuxzhao.com"
<Directory "/home/wwwroot/bbs">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/tech"
ServerName "tech.linuxzhao.com"
<Directory "/home/wwwroot/tech">
AllowOverride None
Require all granted
</directory>
</VirtualHost>
…………….………………
第4步:使用restorecon命令讓新設置的SELinux安全上下文立即生效
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
restorecon -Rv /home/wwwroot
基於端口號
基於端口號的虛擬主機功能可以讓用戶通過指定的端口號來訪問服務器上的網站資源
第1步:分別在/home/wwwroot中創建用於保存不同網站數據的兩個目錄,並向其中分別寫入網站的首頁文件
mkdir -p /home/wwwroot/6111
mkdir -p /home/wwwroot/6222
echo "port:6111" > /home/wwwroot/6111/index.html
echo "port:6222" > /home/wwwroot/6222/index.html
第2步:在httpd服務配置文件分別添加用於監聽6111和6222端口的參數。
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf
………………………………
\#
\# Listen: Allows you to bind Apache to specific IP addresses and/or
\# ports, instead of the default. See also the <VirtualHost>
\# directive.
\#
\# Change this to Listen on specific IP addresses as shown below to
\# prevent Apache from glomming onto all bound IP addresses.
\#
\#Listen 12.34.56.78:80
Listen 80
Listen 6111
Listen 6222
………………………………
第3步:httpd服務的配置文件追加寫入兩個基於端口號的虛擬主機網站參數,保存退出,重啟httpd服務
vim /etc/httpd/conf/httpd.conf
………………………………
<VirtualHost 192.168.10.10:6111>
DocumentRoot "/home/wwwroot/6111"
ServerName www.linuxzhao.com
<Directory "/home/wwwroot/6111">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.10:6222>
DocumentRoot "/home/wwwroot/6222"
ServerName bbs.linuxzhao.com
<Directory "/home/wwwroot/6222">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
………………………………
第4步:使用restorecon命令讓新設置的SELinux安全上下文立即生效
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*
restorecon -Rv /home/wwwroot/
#使用semanage命令查詢並過濾出所有與HTTP協議相關且SELinux服務允許的端口列表
semanage port -l | grep http
第5步:將這兩個端口號手動添加進去SELinux允許的與HTTP協議相關的端口號
semanage port -a -t http_port_t -p tcp 6111
semanage port -a -t http_port_t -p tcp 6222
semanage port -l| grep http
http服務和apache