第十周作業

1、Centos7系統下實現httpd-2.2的安裝,并分別實現prefork、worker、event等幾種工作方式
2、簡述request報文請求方法和狀態響應碼
3、詳細描述httpd虛擬主機、站點訪問控制、基于用戶的訪問控制、持久鏈接等應用配置實例

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

yum –y install “Development Tools”

  1. 下載源碼的httpd-2.2.8
  2. 編譯安裝httpd-2.2.8
    • 切換到httpd-2.2.8目錄
    • ./configure –prefix=/usr/local/httpd
    • Make
    • Make install
  3. 創建啟動文件
  • 在/etc/rc.d/init.d/
  • ln /usr/local/httpd/bin/apachectl httpd
  • vi httpd ## 添加#chkconfig: 345 90 10
  • chkconfig –add httpd
  • 用systemctl start httpd.service測試
    1. 添加命令到環境變量

PATH=$PATH:/usr/local/httpd/bin

Prefork模型的httpd安裝成功

  1. 分別編譯安裝其他模型的httpd

./configure ?–prefix=/usr/local/httpd.work? –with-mpm=worker

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

然后用不同的啟動命令啟動httpd

 

 

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

method(方法):

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

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

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

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

DELETE:請求刪除服務器上指定的資源;

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

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

 

協議查看或分析的工具:

tcpdump,tshark,wireshark

 

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

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

虛擬主機

站點標識:socket

IP相同,但端口不同

IP不同,但端口均為默認端口;

FQDN不同;

請求報文中首部

Host:www.mageedu.com

 

報文首部

方法 ?URL HTTP版本

GET www.magedu.com httpd1.1

 

有三種實現方案:

基于ip:

為每個虛擬主機準備至少一個ip地址;

基于port:

為每個虛擬主機使用至少一個獨立的port;

基于FQND:

為每個虛擬主機使用至少一個FQDN;

 

注意(專用于httpd-2.2):一般虛擬機不要與中心主機混用;因此,要使用虛擬主機,得先禁用main主機;

禁用方法:注釋中心主機的DocumentRoot指令即可;

 

虛擬主機的配置方法:

<VirtualHost IP:PORT>

ServerName FQDN

DocumentRoot “”

</VirtualHost>

 

其他可用指令:

ServerAlias:虛擬主機的別名;可多次使用;

ErrorLog:

CustomLog:

<Directory>

</Directory

Alias

….

 

<VirtualHost 172.16.0.67:80>

ServerName www.magedu.com

DocumentRoot “/data/web/magedu”

<Directory “/data/web/magedu”>

Oprions None

AllowOverride None

Require all granted

</Directory>

CustomLog “logs/magedu_access” combined

</VirtualHost>

 

 

基于IP的虛擬主機示例:

 

<VirtualHost 172.16.0.67:80>

ServerName www.magedu.com

DocumentRoot “/data/web/magedu”

</VirtualHost>

 

<VirtualHost 172.16.0.68:80>

ServerName www.niaogedu.com

DocumentRoot “/data/web/niaoge”

</VirtualHost>

 

基于端口的虛擬主機:

<VirtualHost 172.16.0.67:80>

ServerName www.magedu.com

DocumentRoot “/data/web/magedu”

</VirtualHost>

<VirtualHost 172.16.0.68:8080>

ServerName www.niaogedu.com

DocumentRoot “/data/web/niaoge”

</VirtualHost>

 

基于FQDN的虛擬主機

 

<VirtualHost 172.16.0.68:80>

ServerName www.niaogedu.com

DocumentRoot “/www/niaogedu/htdocs”

</VirtualHost>

 

<VirtualHost 172.16.0.68:80>

ServerName www.magedu.com

DocumentRoot “/www/magedu/htdocs”

</VirtualHost>

 

 

注意:如果時httpd-2.2,則使用基于FQDN的虛擬主機時,需要事先使用如下指令:

NameVirtualHost IP:PORT

 

 

  1. 站點訪問控制,基于用戶的訪問控制

基于IP的訪問控制
允許所有主機訪問:Require all granted
拒絕所有主機訪問:Require all deny

控制特定的IP訪問
Require ip ipaddr? 授權指定來源的IP訪問;
Require not ip ipaddr? 拒絕;

控制特定的主機訪問
Require host HOSTNAME 授權指定來源的主機訪問;
REquire not host HOSTNAME 拒絕;

HOSTNAME:
FQDN:特定主機
domin.tld:指定與名下的所有主機

<RequireAll>
Require all granted
Require not ip 172.20
</Require>

基于用戶認證方式有兩種:

basic:明文

digest:消息摘要認證

 

安全域:要求用戶認證后方能訪問的路徑;應該通過名稱對其進行標識,以便于告知用戶認證的原因;

 

用戶的賬號和密碼存放于何處?

虛擬賬號:僅用于訪問某服務時用到的認證標識

 

存儲:

文本文件;

SQL數據庫;

ldap目錄存儲;

 

basic認證配置示例:

(1)定義安全域

<Directory “路徑”>

OPtions None

AllowOverride None

AuthType Basic

AuthName “String” ##String 認證提示信息….

AuthUserFile “/PATH/TO/HTTPD_user_PASSWD_FILE”

Require user username1 username2 ….

</Directory>

2)提供賬號和密碼存儲(文本文件)

使用專用命令完成此類文件的創建及用戶管理

htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE username

-c:自動創建此處指定的文件,因此,僅應該在此文件不存在時使用;

-m:md5格式加密

-s:sha格式加密

-D:刪除指定用戶

 

另外:基于組賬號進行認證;

 

a.定義安全域

<Directory “”>

OPtions None

AllowOverride None

AuthType Basic

AuthName “Admin Area, Plz enter username and password.”

AuthUserFile “/PATH/TO/HTTPD_user_PASSWD_FILE”

Require group groupname1 groupname2 ….

</Directory>

b.創建用戶賬號和組賬號文件;

 

組文件:每一行定義一個組

GRP_NAME:username1 username2

 

  1. 持久連接

持久連接(保持連接,長連接)

persistent connection:tcp連續建立后,每個資源獲取完成后不全斷開連接,而是繼續等待其他資源請求的進行;

如果斷開?

數量限制

時間限制

 

副作用:對并發訪問較大的服務器,長連接機制會使得后續某些請求無法得到正常響應;

折中:使用較短的持久連接時長,以及較少的請求數量;

 

配置如下

KeepAlive On|Off

KeepAliveTimeOut 15

MaxKeepAliveRequests 100

 

測試:

telnet WEB_SERVER_IP PORT

GET /URL HTTP/1.1

Host:SERVER_IP

 

注意:

httpd-2.4的KeepAliveTimeout可是毫秒級;

KeepAliveTimeout num[ms]

 

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

(0)
墨武墨武
上一篇 2018-07-14
下一篇 2018-07-15

相關推薦

  • iptables/netfilter、?tcp_wrapper

    iptables/netfilter: Firewall:防火墻,隔離工具;工作于主機或網絡邊緣,對于進出本主機或本網絡的報文根據事先定義的檢查規則作匹配檢測,對于能夠被規則匹配到的報文作出相應處理的組件; 主機防火墻 網絡防火墻 軟件防火墻(軟件邏輯): 硬件防火墻(硬件和軟件邏輯):NetScreen,CheckPoint,。。。 iptables(ne…

    Linux筆記 2018-06-05
  • 磁盤存儲和系統文件

    ll /dev/sd*查看硬盤設備ll dev/sda 8,0主要設備號和次要設備號mknod專門創建塊文件 mknod /data/sda 8,1dd if=data/zerofile of=test bs=1M count=10hexdump -c test 查看里面lsblk查看硬盤名cenos6 加硬盤名字會變 7會自己排列head:磁頭track:…

    Linux筆記 2018-05-03
  • 加密和安全

    常見的加密算法和安全協議 一、對稱加密:加密和解密使用同一個密鑰,依賴于算法和密鑰,其安全性依賴于密鑰而非算法 常見的算法:DES ? 特性: ? 加密、解密使用同一個密鑰 ? 將明文分隔成固定的大小塊逐個進行加密 ? 缺點: ? 密鑰過多、密鑰分發 二、非對稱加密:采用的是公鑰加密方法,密鑰是成對出現的,公鑰是從私鑰中提取出來的 ? 公鑰:公開給所有人;p…

    Linux筆記 2018-05-10
  • 第八周博客作業

    一、簡述systemd的新特性及unit常見類型分析,能夠實現編譯安裝的如nginx\apache實現通過systemd來管理。
    二、描述awk命令用法及示例
    三、描述awk函數示例

    2018-05-10
  • 學習筆記(3)

    學習筆記

    Linux筆記 2018-04-01
  • 出來馬哥教育

    18年到馬哥教育學校Linux

    Linux筆記 2018-07-19
欧美性久久久久