天天看點

apache服務解析

本篇部落格内容主要有:

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)

工作過程:

apache服務解析

第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系統需要安裝

apache服務解析

windows直接用浏覽器位址欄輸入ip即可通路

apache服務解析

httpd主配置檔案

rpm  -qc  httpd             #檢視配置檔案

其中/etc/httpd/conf/httpd.conf為主配置檔案

httpd.conf配置檔案組成:全局設定、子產品設定、虛拟主機設定、目錄通路權限設定。

  1. 全局設定:Listen監聽端口、Root預設網站根目錄、Directory目錄權限等設定
  2. 子產品設定:IfModule各種功能子產品設定,如基于使用者認證的通路子產品、fastcgi通用網關接口子產品、PHP子產品等。
  3. 虛拟主機設定:<VirtualHost  ip:port>首頁目錄、管理者郵箱設定</VirtualHost>
  4. 目錄通路權限設定:<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驗證效果

apache服務解析

 三.虛拟主機設定

虛拟主機即在一台伺服器上釋出多個不同的網站 , 通常有以下三種解決方法:

基于端口的虛拟主機 伺服器隻有一個IP,但每個網站綁定在不同的端口上 . 例如:80 , 8081 , 8082等
基于IP的虛拟主機 伺服器網卡設定多個IP位址 , 每個網站綁定在不同的IP位址上
基于域名的虛拟主機(最常用) 伺服器隻有一個IP位址 , 給伺服器設定多個主機名 , 每個網站綁定在不同主機名上

基于端口的虛拟主機:

第一步 : 前期準備工作 , 設定3個網站目錄 , 分别設定簡單的首頁

apache服務解析

第二步 : 編輯建立檔案/etc/httpd/conf.d/gg.conf , 内容為

apache服務解析

第三步 : 儲存檔案退出後 , 重新開機服務 , 進行通路測試

apache服務解析

基于IP的虛拟主機

第一步 : 前期準備工作 , 給主機臨時添加兩個虛拟IP , 檢視效果如下圖:

apache服務解析

第二步 : 編輯配置檔案 /etc/httpd/conf.d/gg.conf 檔案

apache服務解析

第三步 : 重新開機服務 , 進行測試

apache服務解析

基于域名的虛拟主機

第一步 : 因為是測試 , 可以修改本地域名解析檔案/etc/hosts

apache服務解析

第二步 , 重新開機服務進行測試

apache服務解析

可以看到 , 三個域名指向的是同一個IP

 四 . 通路控制IP

第一步 : 把上面的/etc/hosts檔案改回 , 編輯主配置檔案/etc/httpd/conf/httpd.conf , 添加如下内容:

apache服務解析

第二步 : 重新開機服務 , 用192.168.11.11(node11)和192.168.11.14(node14)兩台主機進行通路

apache服務解析
apache服務解析

結果為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)

apache服務解析

第三步 : 重新開機服務 , 進行測試

apache服務解析

沒有輸入正确的認證使用者賬号密碼時會報錯

apache服務解析

六 . 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