使用 Apache 服務部署靜態網站html
咱們平時訪問的網站服務就是 Web 網絡服務,通常是指容許用戶經過瀏覽器訪問到互聯網中各類資源的服務。Web 網絡服務是一種被動訪問的服務程序,即只有接收到互聯網中其餘主機發出的請 求後纔會響應,最終用於提供服務程序的 Web 服務器會經過 HTTP(超文本傳輸協議)或 HTTPS(安全超文本傳輸協議)把請求的內容傳送給用戶。目前可以提供 Web 網絡服務的程序有 IIS、Nginx 和 Apache 等。IIS(Internet Information Services,互聯網信息服務)是 Windows 系統中默認的 Web 服務程序,這是一款圖形化的網站管理工具,不只能夠提供 Web 網站服務,還能夠提供 FTP、NMTP、SMTP 等服務。linux
Nginx 程序做爲一款輕量級的網站服務軟件,因其穩定性和豐富的功能而快速佔領服務器市場,但 Nginx 最被承認的還當是系統資源消耗低且併發能力強;Apache 程序是目前擁有很高市場佔有率的 Web 服務程序之一,其跨平臺和安全性廣 泛被承認且擁有快速、可靠、簡單的 API 擴展。apache
Apache 服務程序的部署:vim
1.把光盤設備中的系統鏡像掛載到/media/cdrom 目錄,mkdir -p /media/cdrom -> mount /dev/cdrom /media/cdrom 瀏覽器
2.使用 Vim 文本編輯器建立 Yum 倉庫的配置文件,vim /etc/yum.repos.d/rhel7.repo,配置文件的標準格式爲:安全
name=rhel7服務器
baseurl=file:///media/cdrom 網絡
enabled=1 併發
gpgcheck=0編輯器
3.安裝 Apache 服務程序,使用 yum 命令進行安裝時,跟在命令後面的 Apache 服務的軟件包名稱爲 httpd。若是直接執行 yum install apache 命令,則系統會報錯。因此命令爲:yum install httpd。
4.啓用 httpd 服務程序並將其加入到開機啓動項中,使其可以隨系統開機而運行, 從而持續爲用戶提供 Web 服務:
systemctl start httpd
systemctl enable httpd
在 httpd 服務程序的主配置文件中,存在三種類型的信息:註釋行信息、全局配置、區域配置。全局配置參數與區域配置參數的區別:全局配置參數就是一種全局性的配置參數,可做用於對全部的子站點,既保證了子站點的正常訪問,也有效減小了頻繁寫入重複參數的工做量。區域配置參數則是單獨針對於每一個獨立的子站點進行設置的。
配置服務文件參數:
服務目錄:/etc/httpd
主配置文件:/etc/httpd/conf/httpd.conf
網站數據默認目錄:/var/www/html
SELinux安全子系統
RHEL 7 系統使用 SELinux 技術的目的是爲了讓各個服務進程都受到約束,使其僅獲取到本應獲取的資源。對服務程序的功能進行限制(SELinux 域限制能夠確保服務程序作不了出格的事情);對文件資源的訪問限制(SELinux 安全上下文確保文件 資源只能被其所屬的服務程序進行訪問)。
selinux域:限制服務功能;
selinux安全上下文:限制文件權限(限制文件只能被誰所獲取)。
SELinux主配置文件:/etc/selinux/config,以及SELinux服務有三種配置模式:
enforcing:強制啓用安全策略模式,將攔截服務的不合法請求。
permissive:遇到服務越權訪問時,只發出警告而不強制攔截。
disabled:對於越權的行爲不警告也不攔截。
查看當前selinux狀態命令:getenforce
臨時關閉selinux:setenforce 0
臨時開啓selinux:setenforce 1
策略獲取:getsebool
策略設置:setsebool
semanage命令用於管理 SELinux 的策略,在使用 semanage 命令時,經常使用到的幾個參數:-l 參數用於查詢;-a 參數用於添加;-m 參數用於修改;-d 參數用於刪除。
添加一條 SELinux 安全上下文,讓這個目錄以及裏面的全部文件可以被 httpd 服務程序所訪問到:semanage fcontext -a -t httpd_sys_content_t /home/wwwroot (/home/wwwroot後不用加「/」,即/home/wwwroot/是錯誤的)。
使用 restorecon 命令將設置好 的 SELinux 安全上下文當即生效,在使用 restorecon 命令時,能夠加上-Rv 參數對指定的目錄 進行遞歸操做,以及顯示 SELinux 安全上下文的修改過程。命令爲:restorecon -Rv /home/wwwroot
我的用戶主頁功能:httpd 服務程序提供的我的用戶主頁功能可讓系統內全部的用戶在自己的家目錄中管理我的的網站,並且訪問起來也很是容易,操做步驟:
1.在 httpd 服務程序中,默認沒有開啓我的用戶主頁功能。咱們須要編輯下 面的配置文件,而後在第 17 行的 UserDir disabled 參數前面加上井號(#),表示讓 httpd 服務程序開啓我的用戶主頁功能;同時再把第 24 行的 UserDir public_html 參數前面的井號(#) 去掉(UserDir 參數表示網站數據在用戶家目錄中的保存目錄名稱,即 public_html 目錄)
2.在用戶家目錄中創建用於保存網站數據的目錄及首頁面文件,且把家目錄的權限修改成 755,保證其餘人也有權限讀取裏面的內容。
3.從新啓動 httpd 服務程序,在瀏覽器的地址欄中輸入網址,其格式爲「網址/~ 用戶名」(其中的波浪號是必需的,並且網址、波浪號、用戶名之間沒有空格)。
4.使用 getsebool 命令查詢並過濾出全部與 HTTP 協議相關的安全策略,使用setsebool命令來修改 httpd_enable_homedirs的布爾值:setsebool -P httpd_enable_homedirs=on
虛擬主機功能:能夠把一臺處於運行狀態的物理服務器分割成多個「虛擬的服務器」。Apache 的虛擬主機功能是服務器基於用戶請求的不一樣 IP 地址、主機域名或端口號,實 現提供多個網站同時爲外部提供訪問服務的技術,用戶請求的資源不一樣, 最終獲取到的網頁內容也各不相同。
基於IP地址:若是一臺服務器有多個 IP 地址,並且每一個 IP 地址與服務器上部署的每一個網站一一對應, 這樣當用戶請求訪問不一樣的 IP 地址時,會訪問到不一樣網站的頁面資源。
1.分別在/home/wwwroot 中建立用於保存不一樣網站數據的 3 個目錄,並向其中分 別寫入網站的首頁文件。
mkdir -p /home/wwwroot/10
mkdir -p /home/wwwroot/20
echo "IP:192.168.10.10" > /home/wwwroot/10/index.html
echo "IP:192.168.10.20" > /home/wwwroot/20/index.html
2.在 httpd 服務的配置文件中大約 113 行處開始,分別追加寫入三個基於 IP 地址的虛 擬主機網站參數,而後保存並退出。
vim /etc/httpd/conf/httpd.conf
<virtualhost 192.168.10.10>
documentroot /home/wwwroot/10
servername www.linuxprobe.com
<directory /home/wwwroot/10>
allowoverride none
require all granted
</directory>
</virtualhost>
<virtualhost 192.168.10.20>
documentroot /home/wwwroot/20
servername www.linuxprobe.com
<directory /home/wwwroot/20>
allowoverride none
require all granted
</directory>
</virtualhost>
systemctl restart httpd
3.手動把新的網站數據目錄的 SELinux 安全上下文設置正確,並使用 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/*
restorecon -Rv /home/wwwroot
基於主機域名:當服務器沒法爲每一個網站都分配一個獨立 IP 地址的時候,能夠嘗試讓 Apache 自動識別 用戶請求的域名,從而根據不一樣的域名請求來傳輸不一樣的內容。
基於端口號:基於端口號的虛擬主機功能可讓用戶經過指定的端口號來訪問服務器上的網站資源。 在使用 Apache 配置虛擬網站主機功能時,基於端口號的配置方式是最複雜的。
Apache訪問控制:Apache 能夠基於源主機名、源 IP 地址或源主機上的瀏覽器特徵等信息對網站上的資源 進行訪問控制。它經過 Allow 指令容許某個主機訪問服務器上的網站資源,經過 Deny 指令實 現禁止訪問。在容許或禁止訪問網站資源時,還會用到 Order 指令,這個指令用來定義 Allow 或 Deny 指令起做用的順序,其匹配原則是按照順序進行匹配,若匹配成功則執行後面的默認指令。能夠實現控制網站只能被火狐瀏覽器訪問。步驟:
1.先在服務器上的網站數據目錄中新建一個子目錄,並在這個子目錄中建立一個包含 Successful 單詞的首頁文件。
mkdir /var/www/html/server
echo "Successful" > /var/www/html/server/index.html
2.打開 httpd 服務的配置文件,在第 129 行後面添加下述規則來限制源主機的訪問。 這段規則的含義是容許使用 Firefox 瀏覽器的主機訪問服務器上的首頁文件,除此以外的全部請求都將被拒絕。修改配置文件的參數:vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/server">
SetEnvIf User-Agent "Firefox" ff=1
Order allow,deny
Allow from env=ff
</Directory>
3.重啓httpd服務
systemctl restart httpd