httpd協議配置進階

目錄

  • 虛擬主機配置

  • status狀態頁面

  • curl命令

  • mod_deflate模塊

  • https配置

  • httpd自帶應用程序

虛擬主機配置

有三種實現方案:
   基于IP
       為每個虛擬主機準備至少一個IP地址
   基于端口:
       為每個虛擬主機使用至少一個獨立的port
   局域FQDN:
       為每個虛擬主機使用至少一個FQDN

注意:一般虛擬主機不要與中心主機混用; 因此,要使用虛擬主機,得先禁用’main’主機 
禁用方法:注釋中心主機的DocumentRoot指令即可

虛擬主機配置方法
<VirtualHost IP:PORT>    # 指明IP和端口
   ServerName FQDN     # 指明主機名
   DocumentRoot ""     # 網頁文檔路徑
</VirtualHost>

其它可用命令:
   ServerAlias:虛擬主機的別名;可多次使用;
   ErrorLog:錯誤日志
   CustomLog:訪問日志
   ...
基于IP的虛擬主機示例

1.創建虛擬主機配置文件

]FXYA~)N(ZZ]1IF%{`QDG8U.png

2.為每個虛擬主機提供網頁文檔

{_5T7[W2)[}GI(_H`NQ_085.png

3.測試

@O2A@DMR$)UI$JMQ5[39I]P.png

CHNTLQRV@RIXQI1HB1BU[{C.png

F_D2)9FJ1CR4W7`I_E0WAIC.png

基于端口的虛擬主機

1.創建虛擬主機配置文件

@KKRI)T8PXHBP1@ROUZPEEL.png

2.確認三個端口都已經監聽

N(4{H0)2OCSW3F}OWVFAJVY.png

3.測試

O3$0{{KET8%Q2~1I~(43NBR.png

P27~XCHW3R2M0EHKO6@15ML.png

XJVG}NGI@`~ENH5W1O(~9$9.png

基于主機名的虛擬主機

1.創建虛擬主機配置文件

(AH5Z@DK2@5({_%SIUU04V1.png

2.在客戶端hosts文件中添加主機名解析

EF}MWZ1[OR8WV{Z8B0@)T1K.png

3.測試

_H]A$(F3M2$07UY8Q7[23{K.png

B@P4ABJ$@55N])ESC]H]H$B.png

H{)%V@XYNJXH3[V{MYG_QO0.png

配置status狀態頁

1.確保status_module模塊已加載

]Y$86ZFN}9()M7X4V~M}AAT.png

2.在配置文件中添加此項

)V8F25AO8O]Y__IUH`1~62X.png

3.測試

9Q@EZUHJDM(X4S{@S00~`~A.png

curl命令

curl是基于URL語法在命令行方式下工作的文件傳輸工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等協議。curl支持HTTPS認證,并且支持HTTP的POST、PUT等方法, FTP上傳, kerberos認證,HTTP上傳,代理服務器, cookies, 用戶名/密碼認證, 下載文件斷點續傳,上載文件斷點續傳, http代理服務器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務器,,通過http代理服務器上傳文件到FTP服務器等等,功能十分強大。           
curl  [options]  [URL...]

curl的常用選項:
   -A/--user-agent <string> 設置用戶代理發送給服務器
   --basic 使用HTTP基本認證
   -e/--referer <URL> 來源網址
   --cacert <file> CA證書 (SSL)
   --compressed 要求返回是壓縮的格式
   -H/--header <line>自定義首部信息傳遞給服務器
   -I/--head 只顯示響應報文首部信息
   --limit-rate <rate> 設置傳輸速度
   -u/--user <user[:password]>設置服務器的用戶和密碼
   -0/--http1.0 使用HTTP 1.0
   -X, --request <command>:自定義請求方法

用法:curl [options] [URL...]

另一個工具:elinks
   elinks  [OPTION]... [URL]...
       -dump: 不進入交互式模式,而直接將URL的內容輸出至標準輸出;

mod_deflate模塊

使用mod_deflate模塊壓縮頁面優化傳輸速度

適用場景:
(1) 節約帶寬,額外消耗CPU;同時,可能有些較老瀏覽器不支持;
(2) 壓縮適于壓縮的資源,例如文件文件;

   SetOutputFilter DEFLATE

   # mod_deflate configuration

   # Restrict compression to these MIME types
   AddOutputFilterByType DEFLATE text/plain
   AddOutputFilterByType DEFLATE text/html
   AddOutputFilterByType DEFLATE application/xhtml+xml
   AddOutputFilterByType DEFLATE text/xml
   AddOutputFilterByType DEFLATE application/xml
   AddOutputFilterByType DEFLATE application/x-javascript
   AddOutputFilterByType DEFLATE text/javascript
   AddOutputFilterByType DEFLATE text/css

   # Level of compression (Highest 9 - Lowest 1)
   DeflateCompressionLevel 9

   # Netscape 4.x has some problems.
   BrowserMatch ^Mozilla/4  gzip-only-text/html

   # Netscape 4.06-4.08 have some more problems
   BrowserMatch  ^Mozilla/4\.0[678]  no-gzip

   # MSIE masquerades as Netscape, but it is fine
   BrowserMatch \bMSI[E]  !no-gzip !gzip-only-text/html

https協議

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS和HTTP的區別

超文本傳輸協議HTTP協議被用于在Web瀏覽器和網站服務器之間傳遞信息。HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此HTTP協議不適合傳輸一些敏感信息,比如信用卡號、密碼等。 
為了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議HTTPS。為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。

SSL會話的簡化過程

(1) 客戶端發送可供選擇的加密方式,并向服務器請求證書;
(2) 服務器端發送證書以及選定的加密方式給客戶端;
(3) 客戶端取得證書并進行證書驗正:
   如果信任給其發證書的CA:
       (a) 驗正證書來源的合法性;用CA的公鑰解密證書上數字簽名;
       (b) 驗正證書的內容的合法性:完整性驗正
       (c) 檢查證書的有效期限;
       (d) 檢查證書是否被吊銷;
       (e) 證書中擁有者的名字,與訪問的目標主機要一致;
(4) 客戶端生成臨時會話密鑰(對稱密鑰),并使用服務器端的公鑰加密此數據發送給服務器,完成密鑰交換;
(5) 服務用此密鑰加密用戶請求的資源,響應給客戶端;

注意:SSL會話是基于IP地址創建;所以單IP的主機上,僅可以使用一個https虛擬主機;

配置httpd支持https

(1) 為服務器申請數字證書;
   測試:通過私建CA發證書
       (a) 創建私有CA
       (b) 在服務器創建證書簽署請求
       (c) CA簽證

(2) 配置httpd支持使用ssl,及使用的證書;
   # yum -y install mod_ssl

   配置文件:/etc/httpd/conf.d/ssl.conf
       DocumentRoot
       ServerName
       SSLCertificateFile
       SSLCertificateKeyFile

https配置實現

1.安裝mod_ssl包,配置http支持https

[root@centos7 ~]# yum -y install mod_ssl
[root@centos7 ~]# httpd -M | grep ssl
ssl_module (shared)
[root@centos7 ~]#

2.建立私有CA

(1)生成私鑰

88HUE$[@3)OCK6IO]8LX5GC.png

(2)生成自簽證書

_)`(84J1R2BP_[ZNPV}G[EJ.png

(3)為CA提供所需的目錄及文件

$$C63W5$}_VDAA$$[_~[~7V.png

3.在服務器端創建簽署請求,CA簽證

(1)生成私鑰

[root@centos7 ~]# mkdir /etc/httpd/ssl
[root@centos7 ~]# cd /etc/httpd/ssl
[root@centos7 ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

(2)生成簽署請求

{B3BZ~HS@__V6RC[4LXZM[U.png

(3)CA簽證

[root@centos7 ssl]# openssl ca -in httpd.csr -out /etc/httpd/ssl/httpd.crt -days 365

4.配置httpd支持ssl

{`2`NL]4CBY244BYGP6@YKC.png

7F)W)00NEM@~V]BVM%X~$SJ.png

5.客戶端驗證

7O4N3_)WJ}HND~CJ[XO8D8O.png

E{@$WO1VU2]FPL17$XG~S_4.png

8V3H){(R1FJH$TDB66%F(7A.png

http自帶應用程序

htpasswd:basic認證基于文件實現,用于生成賬號和密碼的程序;
   -c:自動創建此處指定的文件,因此,僅應該在此文件不存在時使用
       -m:md5格式加密
       -s:sha格式加密
       -D:刪除指定用戶
apachectl:httpd自帶的服務控制腳本,支持start和stop等子命令;
apxs:- APache eXtenSion tool
   為httpd增添模塊的;

rotatelogs:日志切割
   access_log,
   access_log, access_log.1, ...

ab - web service的壓力測試工具    
       ab [OPTIONS]  [http[s]://]hostname[:port]/path
           請求數:[ -n requests ]
           并發數:[ -c concurrency ]
           長連接:[ -k ]

原創文章,作者:zhai796898,如若轉載,請注明出處:http://www.www58058.com/55277

(0)
zhai796898zhai796898
上一篇 2016-10-31 00:18
下一篇 2016-10-31 00:40

相關推薦

  • linux文件管理

    目錄創建刪除,軟硬鏈接的區別和注意,file命令的使用,工作中遇到一些情況的處理方法

    2017-11-18
  • 邏輯卷

    §·邏輯卷管理器LVM介紹 ※·LVM邏輯卷的簡單描述 lvm(logical volume manager 邏輯卷管理器)的可以彈性的調整文件系統的容量,支持任何塊設備,需要使用dm模塊:device mapper設備映射,將一個或多個底層設備組織成一個邏輯設備的模塊。 lvm的重點在于彈性的調整文件系統的容量,而并非在于數據的存儲效率及安全上面…

    Linux干貨 2016-08-30
  • 文件查找

    文件查找: locate查找:     locate:     依賴于事先構建好的索引庫,操作系統剛完成沒有       系統自動實現(周期性任務);      &nbs…

    Linux干貨 2016-08-15
  • 第三周學習總結之用戶管理

    寫在前面 我們知道作為一個系統管理員,對系統內人員的管理是非常頻繁的,今天給張三添加某個權限,明天李四離職需要刪除賬號、回收權限,后天王五部門調動,都需要涉及到人員賬號的相應調整。因此用戶的管理就變得尤其重要。 用戶管理 Linux系統的用戶有普通用戶和特權用戶之分,特權用戶是可以執行特權操作的一個或一類用戶,而普通用戶則只能執行普通的操作,沒有特權操作權利…

    2017-12-19
  • Linux常用命令

    一、Linux常用命令(總) 二、Linux常用命令(分) 1、pwd – print name of current/working directory 2、cd – change directory 3、ls – list,dieplay directory content 4、date – pr…

    Linux干貨 2016-09-19
  • 第一天上課

                      2016.10.11 第一天上課 上課環境安排 電腦IP安排 學生IP地址安排     上課軟件安裝    虛擬機安裝 操作系統發展史    第一代計算機:電子管計算機&nb…

    Linux干貨 2016-10-18
欧美性久久久久