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

相關推薦

  • Linux啟動流程

    內核級別: 1、POST開機加電自檢 BIOS加載CMOS信息并進行開機自檢,檢測硬件設備是否正常并進行硬件設備初始化 2、Boot Sequence(BIOS):定義設備啟動順序 BIOS定義設備啟動順序,并讀取啟動設備數據加載硬盤上的第一個扇區MBR。 3、Boot Loader(MBR):bootloader功能實現 Boot Loader提供一個菜單…

    Linux干貨 2016-11-23
  • 從零開始搭建雙主模型的nginx proxy高可用集群

    實驗簡介 本文主要介紹雙主模型的nginx proxy高可用集群的搭建方式。實驗環境: 使用nfs/ftp服務器,nfs提供頁面數據共享,ftp提供程序下載 使用單獨的mariadb服務器提供關系型數據庫 使用兩臺httpd服務器提供頁面服務,包括靜態的html和動態的php(phpmyadmin、wordpress、phpinfo) 使用兩臺nginx作為…

    Linux干貨 2017-06-25
  • Linux 作業

    1.       描述計算機的組成及其功能。 答:CPU、I/O、存儲器; CPU:由運算器和控制器組成;運算器主要功能是對數據進行各種運算,除了進行常規計算外還能進行邏輯運算以及數據的比較、移位等操作??刂破魇钦麄€計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步…

    Linux干貨 2016-10-29
  • httpd的特性(初階應用)

    httpd的特性   httpd常用配置/etc/httpd/conf/httpd.conf 1、修改監聽的IP和PORT Listen [IP:]PORT (1)省略IP表示為0.0.0.0 (2)Listen指令可重復多次 Listen 8080 Listen 80 (3)先修改監聽的socket,重啟服務后方可生效 2、持久連續 KeepAl…

    2017-09-30
  • 計算機組成原理

    計算機組成原理 計算機概述 計算機的基本組成: ·         存儲器:     實現記憶功能的部件用來存放計算程序及參與運算的各種數據 ·         運算器:     負責數據的算術運算和…

    Linux干貨 2016-10-31
  • CentOS6主機啟動流程

    CentOS6主機啟動流程 流程 一臺Linux主機從開機到登錄界面提示輸入賬號密碼的時間中進行了好多動作,了解這些動作有助于了解Linux系統的過程,并能夠對開機過程出現的故障進行troubleshooting。 主機啟動后最先運行的是主板階段,一旦電源開啟,主板進行POST加點自檢動作,自檢完成后無故障,主板會讀取BIOS信息,根據BIOS信息中的Boo…

    Linux干貨 2017-05-13

評論列表(2條)

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

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

    • 逆神陽
      逆神陽 2018-02-05 23:44

      @馬哥教育謝謝老師!

欧美性久久久久