本篇部落格内容主要有:
apache的簡介和安裝
apache實作檔案共享
apache虛拟主機功能
apache通路控制IP
apache使用者認證
http 工作狀态碼
一.apache簡介
apache : 意為充滿更新檔的伺服器(a patchy server) , 它是一個web網站伺服器軟體 , 用來釋出網站資訊資源 , 給使用者提供網頁服務
工作端口:TCP 80
其他的web伺服器軟體除了apache , 常見的還有nginx , tomcat(java) , iis(windows).....
相比其他web軟體其優點有:安裝配置友善簡單 , 相容性好 , windows和linux系統都支援apache , 穩定性高 , 安全可靠 , 支援子產品擴充
apache架構基本為:lamp(Linux + Apache + Mysql + PHP)
工作過程:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CNwgDN3YTN1YTM3ATN1UTMvwlMxQDM5EDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLxM3Lc9CX6MHc0RHaiojIsJye.png)
第1步、連接配接過程:用戶端通過浏覽器輸入的URL采用HTTP協定與伺服器之間通過TCP三次所握手建立連接配接。
第2步、請求過程:向伺服器請求網站的首頁資源,通常預設首頁為index.html、index.php、index.jsp等檔案名。
第3步、應答過程:伺服器将首頁檔案傳送給客戶機浏覽器。如果首頁不存在,會顯示網頁不存在。
第4步、關閉連接配接:為了避免一直占用伺服器資源,資料傳送完畢會自動關閉TCP連接配接。
apache部署流程
此實驗在主機node12上進行(192.168.11.12)
systemctl stop firewalld && setenforce 0 #關閉防火牆和selinux
yum install -y httpd httpd-manual #安裝httpd軟體 ,手冊(可不安裝)
systemctl start httpd && systemctl enable httpd #啟動服務
ss -anput | grep :80 #檢視80端口是否開啟
測試:
apache的預設網站目錄為: /var/www/html/ , 在此可以設定一個簡單的首頁進行測試
date > /var/www/html/index.html
curl 192.168.11.12 #linux用curl通路網站 , curl最小版linux系統需要安裝
windows直接用浏覽器位址欄輸入ip即可通路
httpd主配置檔案
rpm -qc httpd #檢視配置檔案
其中/etc/httpd/conf/httpd.conf為主配置檔案
httpd.conf配置檔案組成:全局設定、子產品設定、虛拟主機設定、目錄通路權限設定。
- 全局設定:Listen監聽端口、Root預設網站根目錄、Directory目錄權限等設定
- 子產品設定:IfModule各種功能子產品設定,如基于使用者認證的通路子產品、fastcgi通用網關接口子產品、PHP子產品等。
- 虛拟主機設定:<VirtualHost ip:port>首頁目錄、管理者郵箱設定</VirtualHost>
- 目錄通路權限設定:<Directory 目錄路徑>通路權限設定</Directory>
line | 配置選項 | 功能解釋 |
31 | ServerRoot "/etc/httpd" | apache工作目錄 |
Include conf.d/*.conf | 包含的配置檔案(可在此存放虛拟主機配置檔案) | |
42 | Listen 80 | 監聽所有IP的80号端口 |
56 | Include conf.modules.d/*.conf | 包含的配置檔案 |
66 | User apache | apache服務程序的使用者賬号。ps -u apache |
67 | Group apache | apache服務程序的組賬号。ps -g apache |
86 | ServerAdmin [email protected] | 管理者郵箱 |
102 | <Directory /> | /根目錄通路權限設定 |
103 | AllowOverride none | 不啟用htaccess通路控制功能 |
104 | Require all denied | 拒絕任何人通路 |
105 | </Directory> | 目錄權限設定的結束标記 |
119 | DocumentRoot "/var/www/html" | 預設網站首頁的根目錄 |
124 | <Directory "/var/www"> | /var/www目錄的通路權限設定 |
125 | AllowOverride None | 不啟用htaccess通路控制功能 |
127 | Require all granted | 允許任何人通路 |
128 | </Directory> | 目錄權限設定的結束标記 |
131 | <Directory "/var/www/html"> | /var/www/html目錄的通路權限設定 |
144 | Options Indexes FollowSymLinks | 啟用索引和符号連結功能,允許無首頁時顯示檔案清單(Indexes僅用于實作檔案共享) |
151 | AllowOverride None | 不啟用htaccess通路控制功能 |
156 | Require all granted | 允許任何人通路 |
Order allow,deny Allow from all Deny from 192.168.10.60 | 通路規則控制的順序,先允許,後拒絕 允許任何IP的客戶機通路此目錄 拒絕192.168.10.60的客戶機通路此目錄 | |
157 | </Directory> | 目錄權限設定的結束标記 |
163 | <IfModule dir_module> | 關于dir_module這個子產品設定 |
164 | DirectoryIndex index.html index.php | 指定預設首頁檔案名的檢索先後順序 |
165 | </IfModule> | 子產品設定的結束标記 |
171 | <Files ".ht*"> | .ht*檔案通路的權限設定 |
172 | Require all denied | 拒絕任何人通路 |
173 | </Files> | 檔案通路權限設定的結束标記 |
182 | ErrorLog "logs/error_log" | 錯誤通路日志檔案,完整路徑為/etc/httpd/logs/error_log |
CustomLog logs/access_log combined | 預設網站的通路日志 | |
189 | LogLevel warn | 日志檔案等級為warn警告級 |
191 | <IfModule log_config_module> | 日志配置子產品設定 |
202 | </IfModule> | |
217 | CustomLog "logs/access_log" combined | CustomLog通路日志格式 |
218 | </IfModule> | 子產品設定的結束符 |
220 | <IfModule alias_module> | alias别名子產品設定 |
247 | ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" | 設定/var/www/cgi-bin/目錄的别名為/cgi-bin |
249 | </IfModule> | |
276 | ServerName www.example.com:80 | 預設網站的域名和端口号(用域名通路此網站) |
261 | <IfModule mime_module> | mime_module子產品設定 |
266 | TypesConfig /etc/mime.types | |
283 | AddType application/x-compress .Z | |
284 | AddType application/x-gzip .gz .tgz | |
305 | AddType text/html .shtml | |
306 | AddOutputFilter INCLUDES .shtml | |
307 | </IfModule> | |
316 | AddDefaultCharset UTF-8 | 預設的字元編碼為UTF-8,win7采用GB2312編碼(即GBK) |
348 | EnableSendfile on | 允許發送檔案。實作檔案下載下傳 |
353 | IncludeOptional conf.d/*.conf | 包含conf.d目錄下的*.conf配置檔案,虛拟主機配置檔案可以儲存在此處。 |
二.apache實作檔案共享
執行個體 : 對鏡像進行共享
httpd想要共享的話,需廢掉welcome.conf(預設首頁)并保證/var/www/html沒有其他.html檔案
mv /etc/httpd/conf.d/welcome.conf{,.bak} #對welcome.conf檔案改名為.bak
滿足上述條件時 :
第一步 , 在/var/www/html/下建立需要分享的檔案的挂載目錄
mkdir /var/www/html/iso
mount /dev/sr0 /var/www/html/iso #将鏡像挂載到/var/www/html/iso目錄
systemctl restart httpd #重新開機服務
第二步 , 在浏覽器位址欄輸入IP:192.168.11.12驗證效果
三.虛拟主機設定
虛拟主機即在一台伺服器上釋出多個不同的網站 , 通常有以下三種解決方法:
基于端口的虛拟主機 | 伺服器隻有一個IP,但每個網站綁定在不同的端口上 . 例如:80 , 8081 , 8082等 |
基于IP的虛拟主機 | 伺服器網卡設定多個IP位址 , 每個網站綁定在不同的IP位址上 |
基于域名的虛拟主機(最常用) | 伺服器隻有一個IP位址 , 給伺服器設定多個主機名 , 每個網站綁定在不同主機名上 |
基于端口的虛拟主機:
第一步 : 前期準備工作 , 設定3個網站目錄 , 分别設定簡單的首頁
第二步 : 編輯建立檔案/etc/httpd/conf.d/gg.conf , 内容為
第三步 : 儲存檔案退出後 , 重新開機服務 , 進行通路測試
基于IP的虛拟主機
第一步 : 前期準備工作 , 給主機臨時添加兩個虛拟IP , 檢視效果如下圖:
第二步 : 編輯配置檔案 /etc/httpd/conf.d/gg.conf 檔案
第三步 : 重新開機服務 , 進行測試
基于域名的虛拟主機
第一步 : 因為是測試 , 可以修改本地域名解析檔案/etc/hosts
第二步 , 重新開機服務進行測試
可以看到 , 三個域名指向的是同一個IP
四 . 通路控制IP
第一步 : 把上面的/etc/hosts檔案改回 , 編輯主配置檔案/etc/httpd/conf/httpd.conf , 添加如下内容:
第二步 : 重新開機服務 , 用192.168.11.11(node11)和192.168.11.14(node14)兩台主機進行通路
結果為192.168.11.11成功通路 , 192.168.11.14讀取的隻是apache的預設首頁檔案 , /gg/www/目錄讀取不到
五 . 使用者認證
apache的使用者認證:是指用戶端在通路網站時會提示輸入使用者名和密碼 , 通過驗證後才能顯示網頁内容
使用者認證工具 : htpasswd
查htpasswd檔案由哪個包提供: yum provides htpasswd
安裝htpasswd工具的軟體 : yum install -y httpd-tools
第一步 : 建立基于使用者認證的賬号 :
htpasswd -cm /etc/httpd/htuser tom #建立tom使用者 , 并生成htuser賬号檔案 和 登入密碼
cat /etc/httpd/htuser #檢視htuser檔案
第二步 : 編輯主配檔案/etc/httpd/conf/httpd.conf檔案(也可以在/etc/httpd/conf.d)
第三步 : 重新開機服務 , 進行測試
沒有輸入正确的認證使用者賬号密碼時會報錯
六 . http工作狀态碼
常見的代碼如下:
代碼 | 含義 |
100 | 請求已接收 , 用戶端可以繼續發送請求 |
101 | Switching Protocals伺服器根據用戶端的請求切換協定 |
200 | 一切正常 |
201 | 伺服器已經建立了文檔 |
202 | 已經接受了請求 , 但尚未處理完成 |
203 | 文檔正常傳回 , 但一些頭部資訊可能不正确 |
300 | 用戶端請求的資源可以在多個位置找到 |
301 | 用戶端請求的資源可以在其他位置找到 |
305 | 請求代理服務 |
400 | 請求文法錯誤 |
401 | 通路被拒絕 |
401.1 | 登入失敗 |
403 | 資源不可用 |
403.6 | IP位址被拒絕 |
404 | 無法找到指定資源 |
406 | 指定資源已找到 , 但MIME類型與用戶端要求不相容 |
407 | 要求進行代理身份驗證 |
500 | 伺服器内部錯誤 |
500.13 | 伺服器太忙 |
501 | 伺服器不支援用戶端的請求功能 |
502 | 網關錯誤 |
503 | 服務不可用 |
504 | 網關逾時 , 伺服器處于維護或負載過高無法響應 |
505 | 伺服器不支援用戶端請求的HTTP版本 |
轉載于:https://blog.51cto.com/14181896/2379734