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)


工作過程:

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

image.png

windows直接用瀏覽器地址欄輸入ip即可訪問

image.png


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

監聽所有IP80號端口

56

Include conf.modules.d/*.conf

包含的配置文件

66

User apache

apache服務進程的用戶賬號。ps  -u  apache

67

Group apache

apache服務進程的組賬號。ps  -g  apache

86

ServerAdmin  root@localhost

管理員郵箱

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-8win7採用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驗證效果

image.png


 三.虛擬主機設置


虛擬主機即在一臺服務器上發佈多個不同的網站 , 通常有以下三種解決方法:

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


基於端口的虛擬主機:


第一步 : 前期準備工作 , 設置3個網站目錄 , 分別設置簡單的主頁

image.png

第二步 : 編輯創建文件/etc/httpd/conf.d/gg.conf , 內容爲

image.png

第三步 : 保存文件退出後 , 重啓服務 , 進行訪問測試

image.png


基於IP的虛擬主機


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

image.png

第二步 : 編輯配置文件 /etc/httpd/conf.d/gg.conf 文件

image.png

第三步 : 重啓服務 , 進行測試

image.png


基於域名的虛擬主機


第一步 : 因爲是測試 , 可以修改本地域名解析文件/etc/hosts

image.png

第二步 , 重啓服務進行測試

image.png

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




 四 . 訪問控制IP


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

image.png

第二步 : 重啓服務 , 用192.168.11.11(node11)和192.168.11.14(node14)兩臺主機進行訪問

image.png

image.png

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

image.png

第三步 : 重啓服務 , 進行測試

image.png

沒有輸入正確的認證用戶賬號密碼時會報錯

image.png




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







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章