httpd配置

1、Centos7系統下實現httpd-2.2的安裝,并分別實現prefork、worker、event等幾種工作方式

2、簡述request報文請求方法和狀態響應碼

3、詳細描述httpd虛擬主機、站點訪問控制、基于用戶的訪問控制、持久鏈接等應用配置實例

1、Centos7系統下實現httpd-2.2的安裝,并分別實現prefork、worker、event等幾種工作方式

編譯安裝httpd-2.2.32.tar.gz

yum groupinstall -y “Development Tools”

tar xf httpd-2.2.32.tar.gz

mkdir /usr/local/httpd

cd httpd-2.2.32

./configure –prefix=/usr/local/httpd –with-mpm=prefork

//可以在編譯時通過–with-mpm選項來指定httpd的工作模式??梢栽O置的工作模式有prefork、worker、event。其中,默認為prefork模式,不用此選項就會工作在此模式下。

注:MPM:Multipath processing Modules (多路處理模塊)

  • prefork:多進程模型,每個進程響應一個請求;一個主進程負責生成子進程及回收子進程;負責創建套接字;負責接收請求,并將其派發給某子進程進行處理;n個子進程每個子進程處理一個請求;工作模型是會預先生成幾個空閑進程,隨時等待用于響應用戶請求;最大空閑和最小空閑;
  • worker:多進程多線程模型,每線程處理一個用戶請求;一個主進程負責生成子進程;負責創建套接字;負責接收請求,并將其派發給某子進程進行處理;多個子進程每個子進程負責生成多個線程;每個線程負責響應用戶請求;并發響應數量:m*n,m表示子進程數量,n表示每個子進程所能創建的最大線程數量;
  • event:事件驅動模型,多進程模型,每個進程響應多個請求;一個主進程負責生成子進程;負責創建套接字;負責接收請求,并將其派發給某子進程進行處理;子進程基于事件驅動機制直接響應多個請求;

2、簡述request報文請求方法和狀態響應碼

  • request報文語法格式:

<method> <request-URL> <version>

<HEADERS>

  • method(方法):

GET:從服務器獲取一個資源;

HEAD:只從服務器獲取文檔的響應首部;

POST:向服務器發送要處理的數據;

PUT:將請求的主體部分存儲在服務器上;

DELETE:請求刪除服務器上指定的文檔;

TRACE:追蹤請求到達服務器中間經過的代理服務器;

OPTIONS:請求服務器返回對指定資源支持使用的請求方法;

  • status(狀態碼):

1xx:100-101, 信息提示;

2xx:200-206, 成功

3xx:300-305, 重定向

4xx:400-415, 錯誤類信息,客戶端錯誤

5xx:500-505, 錯誤類信息,服務器端錯誤

  • 常用的狀態碼:

200: 成功,請求的所有數據通過響應報文的entity-body部分發送;OK

301: 請求的URL指向的資源已經被刪除;但在響應報文中通過首部Location指明了資源現在所處的新位置;Moved Permanently

302: 與301相似,但在響應報文中通過Location指明資源現在所處臨時新位置; Found

304: 客戶端發出了條件式請求,但服務器上的資源未曾發生改變,則通過響應此響應狀態碼通知客戶端;Not Modified

401: 需要輸入賬號和密碼認證方能訪問資源;Unauthorized

403: 請求被禁止;Forbidden

404: 服務器無法找到客戶端請求的資源;Not Found

500: 服務器內部錯誤;Internal Server Error

502: 代理服務器從后端服務器收到了一條偽響應;Bad Gateway

3、詳細描述httpd虛擬主機、站點訪問控制、基于用戶的訪問控制、持久鏈接等應用配置實例

注:這里基于CentOS7的httpd2.4版本rpm包進行安裝配置

  • httpd虛擬主機配置

虛擬主機可以基于IP、端口、FQDN三種方式進行工作

基于IP

mkdir -pv /data/www/html/{ilinux,iunix}

vim /data/www/html/ilinux/index.html

ilinux Test Page

vim /data/www/html/iunix/index.html

iunix Test Page

ip addr add 192.168.1.114/24 dev eno16777736

ip addr list

//現在主機有兩個IP地址,一個是192.168.1.113,一個是192.168.1.114

vim /etc/httpd/conf.d/vhosts.conf

<VirtualHost 192.168.1.113:80>

ServerName www.ilinux.com

DocumentRoot /data/www/html/ilinux

<Directory “/data/www/html/ilinux”>

Options none

AllowOverride none

Require all granted

</Directory>

CustomLog logs/ilinux_access_log combined

ErrorLog logs/iinux_error_log

</VirtualHost>

<VirtualHost 192.168.1.114:80>

ServerName www.iunix.com

DocumentRoot “/data/www/html/iunix”

<Directory “/data/www/html/iunix”>

Options none

AllowOverride none

Require all granted

</Directory>

CustomLog logs/iunix_access_log combined

ErrorLog logs/iunix_error_log

</VirtualHost>

基于端口

vim /etc/httpd/conf.d/vhosts.conf

Listen 8080

<VirtualHost 192.168.1.113:80>

ServerName www.ilinux.com

DocumentRoot /data/www/html/ilinux

<Directory “/data/www/html/ilinux”>

Options none

AllowOverride none

Require all granted

</Directory>

CustomLog logs/ilinux_access_log combined

ErrorLog logs/iinux_error_log

</VirtualHost>

<VirtualHost 192.168.1.113:8080>

ServerName www.iunix.com

DocumentRoot “/data/www/html/iunix”

<Directory “/data/www/html/iunix”>

Options none

AllowOverride none

Require all granted

</Directory>

CustomLog logs/iunix_access_log combined

ErrorLog logs/iunix_error_log

</VirtualHost>

基于FQDN

vim /etc/httpd/conf.d/vhosts.conf

<VirtualHost 192.168.1.113:80>

ServerName www.ilinux.com

DocumentRoot /data/www/html/ilinux

<Directory “/data/www/html/ilinux”>

Options none

AllowOverride none

Require all granted

</Directory>

CustomLog logs/ilinux_access_log combined

ErrorLog logs/iinux_error_log

</VirtualHost>

<VirtualHost 192.168.1.113:80>

ServerName www.iunix.com

DocumentRoot “/data/www/html/iunix”

<Directory “/data/www/html/iunix”>

Options none

AllowOverride none

Require all granted

</Directory>

CustomLog logs/iunix_access_log combined

ErrorLog logs/iunix_error_log

</VirtualHost>

  • 站點訪問控制

vim /etc/httpd/conf/httpd.conf

DocumentRoot “/data/web/www”

<Directory “/data/web/www”>

Require all granted //允許所有人訪問

</Directory>

systemctl restart httpd


vim /etc/httpd/conf/httpd.conf

<Directory “/data/web/www”>

<Requireall>

Require not ip 192.168.1.107 //拒絕一個地址訪問

Require ip 192.168 //允許網段訪問

</Requireall> </Directory>

httpd -t

systemctl restart httpd

  • 基于用戶的訪問控制

htpasswd -c /tmp/test.users tom

//生成一個用戶名叫tom的加密文件叫test.users,文件中用冒號隔開了用戶名和密碼。這條命令輸入后還加輸入兩次密碼。只有第一次創建文件時才用-c選項。

htpasswd /tmp/test.users jerry

//再在test.users文件中加一個叫jerry的用戶,也可以用-m選項,表示md5

htpasswd -b /tmptest.users obama 123456

//用-b選項指明添加用戶名叫obama,密碼是123456

mv /tmp/test.users /etc/httpd/conf.d/.htpasswd

mkdir /data/web/www/admin

vim /data/web/www/admin/index.html

Admin Area

訪問IP/admin

vim /etc/httpd/conf.d/admin.conf

<Directory “/data/web/www”>

Options None

AllowOverride None

AuthType basic

AuthName “Admin Area,Please enter username and password”

AuthUserFile “/etc/httpd/conf.d/.htpasswd”

Require user jerry obama

//這里如果改為Require valid-user表示所有用戶都可登錄。2.2與2.4版本在這里一樣,都用Require user選項。

</Directory>

httpd -t

systemctl restart httpd

訪問IP/admin,需要認證了

vim /etc/httpd/conf.d/.htgroup //這次用組的方式登錄

animals: tom jerry

//創建一個組,名稱叫animals,用戶有tom和jerry。這個用戶一定要是創建過的賬號

vim /etc/httpd/conf.d/admin.conf

<Directory “/data/web/www/admin”>

Options None

AllowOverride None

AuthType basic

AuthName “Admin Area,Please enter username and password”

AuthUserFile “/etc/httpd/conf.d/.htpasswd”

AuthGroupFile “/etc/httpd/conf.d/.htgroup”

Require group animals

</Directory>

  • 持久鏈接

vim /etc/httpd/conf.d/keepalive.conf

KeepAlive On

KeepAliveTimeout 30

MaxKeepAliveRequests 100

vim /var/www/html/index.html

CentOS7 Test Page

systemctl start httpd

telnet 192.168.1.15 80

GET /index.html HTTP/1.1

Host: 192.168.1.15

//可以通過telnet命令進行測試,如果未開啟持久連接功能,當請求完資源后,會立即退出。而將開啟持久連接時,會按照配置文件設置,到邊超時時間或大于請求數量時才會退出。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91455

(0)
ruopu1989ruopu1989
上一篇 2018-02-05 10:52
下一篇 2018-02-06 13:04

相關推薦

  • 正則表達式

    1:什么是正則表達式: 簡單的說,正則表達式就是處理字符串的方法,它是以行為單位進行字符串的處理行為,正則表達式通過一些特殊符號的輔助,可以讓用戶輕易達到查找,刪除,替換某特定字符串的處理程序。 2:一些參數: grep [-A] [-B] [–color=auto] ‘收索字符串’ filename -A :后面可加數字…

    2017-07-29
  • 路由實驗

    實驗需求 使用兩臺Linux主機充當路由器,配置路由條目,讓兩臺PC機互通 1.將兩臺Linux主機添加兩塊虛擬網卡 2.配置R1路由器網絡屬性     3.配置R1路由器網絡屬性     4.配置PC1主機IP地址(Linux主機) 5.配置PC2主機的IP地址(Windows) 6.測試,PC1和PC2可以互通,之…

    Linux干貨 2016-09-09
  • N22-第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     首先用who命令查看所有已登錄用戶信息,然后用cut命令取出用戶名,再用sort -u對用戶名排序并刪除重復的用戶名      2、取出最后登錄到當前系統的用戶的相關信息。  &n…

    Linux干貨 2016-09-05
  • 96-Mariadb-1

        一. MariaDB or MySQL基礎知識                   層次模型 –> 網狀模型 –> …

    2016-11-18
  • linux中文本處理工具

      對于linux來講,文本處理是非常重要的,因為linux系統就是由無數的文件組成的,linux中一切皆文件。文件的處理方式有很多種,所以就有眾多的文本處理工具,各自作用于不同的文本處理方式。 一、查看文件命令:    cat命令:處理顯示文件內容,不改變原文件    cat命令常用于查看文件內容,也可通過…

    Linux干貨 2016-08-08
  • N23-第三周博客作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 [root@localhost ~]# last -1 | head -1 3、取出當前系統上被用戶當…

    Linux干貨 2016-12-05

評論列表(2條)

  • 馬哥教育
    馬哥教育 2018-02-05 22:26

    總結的比較全面,如果能加上實戰部分,會更好一點~加油~

欧美性久久久久