1. 程式人生 > >http服務和apache

http服務和apache

http apache

網頁網絡服務是一種被動訪問的服務程序,只有接收到互聯網中其他主機發出的請求後才會響應,最終用於提供服務程序的網絡服務器會通過HTTP(超文本傳輸協議)或HTTPS(安全超文本傳輸協議)把請求的內容傳送給用戶。
??提供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