httpd服務之虛擬主機、訪問控制、https配置詳解

前言

上文講解了http協議及httpd的一些特性,是學習web服務需要掌握的一些基礎知識,接下來讓我們進一步了解httpd相關功能的配置,本文講解的是虛擬主機,訪問控制及https等功能的配置。

httpd之虛擬主機

虛擬主機共分為三種模式:基于IP、基于端口、基于主機名(FQDN)

實驗環境介紹

開始之前,先介紹一下httpd在CentOS6.6版本及文件:

版本:
     httpd-2.2.15(CentOS7升級為2.4系列)
配置文件:
        /etc/httpd/conf/httpd.conf
        /etc/httpd/conf.d/*.conf
服務腳本:
	/etc/rc.d/init.d/httpd
	腳本配置文件:/etc/sysconfig/httpd
模塊目錄:
	/etc/httpd/modules: 鏈接文件
	/usr/lib64/httpd/modules	
主程序:
	/usr/sbin/httpd: prefork 
	/usr/sbin/httpd.event: event
	/usr/sbin/httpd.worker: worker
日志文件目錄:
	/var/log/httpd
	access_log: 訪問日志
	error_log: 錯誤日志
站點文檔根目錄:
	/var/www/html/images/a.jpg
	http://www.magedu.com/images/a.jpg

注意:配置虛擬主機之前要關閉中心主機

#DocumentRoot "/var/www/html"

基于IP的虛擬主機

工作原理

基于IP虛擬主機.jpg


實戰配置

案例要求:

DNS服務器:172.16.10.10

web服務器:兩個IP 172.16.10.110、172.16.10.186

要求web服務器同時提供兩個站點(www.scholar.com、ops.scholar.com)

www站點文件為/web/www/index.html 內容為www.scholar.com

ops站點文件為/web/ops/index.html 內容為ops.scholar.com

配置DNS正反向區域文件

#正向區域
$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015041301
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns
@       IN      MX 10   mail
dns     IN      A       172.16.10.10
mail    IN      A       172.16.10.12
www     IN      A       172.16.10.110
ops     IN      A       172.16.10.186   #確保站點可以解析
pop     IN      CNAME   mail
ftp     IN      CNAME   www
#反向區域文件
$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015041301
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns.scholar.com.
10      IN      PTR     dns.scholar.com.
12      IN      PTR     mail.scholar.com.
110      IN     PTR     www.scholar.com.
186     IN      PTR     ops.scholar.com.

檢查語法,重啟服務

1.jpg

注意:DNS具體配置詳見博客

創建虛擬主機

[root@scholar ~]# vim /etc/httpd/conf/httpd.conf 

<VirtualHost 172.16.10.110:80>
        ServerName www.scholar.com
        DocumentRoot "/web/www"
</VirtualHost>
<VirtualHost 172.16.10.186:80>
        ServerName ops.scholar.com
        DocumentRoot "/web/ops"
</VirtualHost>

創建站點文件,檢查語法,重啟服務并設置開機自啟

2.jpg

測試兩個站點是否可以訪問

3.jpg

4.jpg

測試成功,基于IP的虛擬主機配置完成

注意:測試時請確保測試主機DNS指向DNS服務器且處于離線狀態,如果不想離線,請修改hosts文件,確保FQDN可以解析。如果訪問失敗,請關閉web服務器的selinux。

基于端口的虛擬主機

工作原理

基于端口虛擬主機.jpg

實戰配置

案例要求:

DNS服務器:172.16.10.10

web服務器:172.16.10.110

要求web服務器開啟8080端口,一個FQDN提供兩個站點,訪問www.scholar.com和

www.scholar.com:8080返回不同結果  

8080站點文件為/web/port/index.html 內容為 www.scholar.com:8080

創建虛擬主機

Listen 80
Listen 8080     #監聽8080端口

<VirtualHost 172.16.10.110:80>
        ServerName www.scholar.com
        DocumentRoot "/web/www"
</VirtualHost>
<VirtualHost 172.16.10.110:8080>
        ServerName www.scholar.com
        DocumentRoot "/web/port"
</VirtualHost>

創建站點文件,測試語法,重啟服務

5.jpg

測試新站點是否可以訪問

6.jpg

訪問成功,基于端口的虛擬主機配置完成

基于主機名的虛擬主機

工作原理

基于主機名虛擬主機.jpg

實戰配置

案例要求:

DNS服務器:172.16.10.10

web服務器:172.16.10.110

要求web服務器提供兩個站點(www.scholar.com dev.scholar.net )

www站點文件為/web/www/index.html 內容為www.scholar.com

dev站點文件為/web/dev/index.html      內容為dev.scholar.net

配置DNS添加區域及區域文件

[root@lab ~]# vim /etc/named.conf 

zone "scholar.net" IN {
        type master;
        file "scholar.net.zone";
};
zone "16.172.in-addr.arpa" IN {
        type master;
        file "172.16.10.net";
};
#正向區域文件
$TTL 3600
@       IN      SOA     dns.scholar.net.        admin.scholar.net. (
                                                        2015041302
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns
dns     IN      A       172.16.10.10
www     IN      A       172.16.10.110
dev     IN      A       172.16.10.110
#反向區域文件
$TTL 3600
@       IN      SOA     dns.scholar.net.        admin.scholar.net. (
                                                        2015041302
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@          IN      NS      dns.scholar.net.
10.10      IN      PTR     dns.scholar.net.
10.110     IN      PTR     www.scholar.net.
10.110     IN      PTR     dev.scholar.net.

檢查語法重啟服務

7.jpg

創建虛擬主機

NameVirtualHost *:80

<VirtualHost *:80>
        ServerName www.scholar.com
        DocumentRoot "/web/www"
</VirtualHost>
<VirtualHost *:80>
        ServerName dev.scholar.net
        DocumentRoot "/web/dev"
</VirtualHost>

創建站點文件,檢查語法,重啟服務

8.jpg

測試站點是否可以訪問

9.jpg

10.jpg

OK,訪問成功,基于主機名的虛擬主機配置完成

httpd之訪問控制

訪問控制可分為兩種模式:基于用戶訪問控制和基于IP訪問控制

基于用戶訪問控制

工作原理

基于用戶訪問控制.jpg

實戰配置

案例要求:

DNS服務器:172.16.10.10

web服務器:172.16.10.110

要求web服務器在www.scholar.com站點下創建一個子頁為站點管理頁,非授權用戶禁止訪問。

子頁位置/web/www/admin/index.html 內容為Admin

創建子頁

<VirtualHost *:80> 
        ServerName www.scholar.com
        DocumentRoot "/web/www"
<Directory "/web/www/admin">
         Options none
         AllowOverride AuthConfig
         AuthType Basic            #認證方式
         AuthName "Admin Area."    #質詢時彈出的提示信息
         AuthUserFile /etc/httpd/conf/.htpasswd #用戶賬號密碼存放位置
         Require valid-user   #所有合法用戶都可訪問,也可用定義單用戶及組認證
</Directory>
</VirtualHost>

創建子頁文件,檢查語法,重啟服務

11.jpg

提供認證文件

htpasswd
-c: 如果此文件事先不存在,則創建  #注意,只能在創建第一個用戶時使用
-m:以md5的格式編碼存儲用戶的密碼信息
-D:刪除指定用戶

12.jpg

測試認證

13.jpg

輸入賬戶密碼

14.jpg

成功訪問,基于用戶的訪問控制配置完成

基于IP的訪問控制

工作原理

基于IP訪問控制.jpg

實戰配置

案例要求:

DNS服務器:172.16.10.10

web服務器:172.16.10.110

要求web服務器的dev.scholar.net站點,作為測試站點,只允許web服務器訪問測試

添加訪問控制IP

<VirtualHost *:80>
        ServerName dev.scholar.net
        DocumentRoot "/web/dev"
<Directory "/web/dev">
        Order allow,deny         #httpd2.4系列不再支持這種限定,改為新的限定方式
        allow from 172.16.10.110
</Directory>
</VirtualHost>

測試語法,重啟服務

15.jpg

測試非授權IP能否正常訪問

16.jpg

訪問被拒絕,接下來用web服務器自測

17.jpg

可以訪問,基于IP的訪問控制配置完成

#elinks需要自行安裝,-dump: 獲取到頁面數據后直接退出進程

httpd之https

前面我們講了基于OpenSSL構建CA的過程,那么如何應用于httpd實現https呢,下面我們就來看一下,https通信是如何實現的。

http事務與https事務對比

https.png

https配置

實戰配置

案例要求:

DNS服務器:172.16.10.10

web服務器:172.16.10.110

要求web服務器的www.scholar.com站點使用https

配置httpd工作于https

要配置https首先要安裝mod_ssl模塊,請自行安裝

為服務端生成私鑰,并為其提供證書

18.jpg

簽署證書,我這里本機就是CA就自簽了,CA配置詳見博客

19.jpg

配置使用https的虛擬主機

[root@scholar ssl]# vim /etc/httpd/conf.d/ssl.conf 

SSLCertificateFile /etc/httpd/ssl/httpd.crt    #證書位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key #私鑰位置

DocumentRoot "/web/www"  #虛擬主機站點文件
ServerName www.scholar.com:443   #虛擬主機ServerName

測試語法,重啟服務,查看443端口是否被監聽

20.jpg

將CA證書導出,重命名為*.crt格式,安裝在受信任的根證書頒發機構中,測試https

21.jpg

OK,測試成功,已經實現https的訪問,是不是很簡單呢?到此,https配置完成

The end

httpd的虛擬主機、訪問控制及https就講解到這里啦,httpd的功能確實很強大,其它功能請見后續文章,下文將講解編譯安裝httpd2.4.9和新特性說明及其它功能的實現,感興趣的可見下文。

以上僅為個人學習整理,如有錯漏,大神勿噴~~~

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

(1)
書生書生
上一篇 2015-04-14 17:36
下一篇 2015-04-14 21:25

相關推薦

  • MySQL高可用架構之MHA

    MySQL高可用架構之MHA 1、關于MHA MHA(Master HA)是一款開源的MySQL的高可用程序,它為MySQL主從復制架構提供了automating master failover功能。MHA在監控到master節點故障時,會提升其中擁有的最新數據的slave節點成為新的master節點,在此期間,MHA會通過其它從節點獲取額外信息來避免一致性…

    Linux干貨 2017-03-30
  • RAID+LVM詳解

                                        一.RAID篇 一.什么是RAID   磁盤陣列全名是『Redundant Arrays…

    Linux干貨 2016-09-07
  • RAID[Redundant Array of Independent Disks | 獨立硬盤冗余陣列 ]

    前言 一個技術要知其然還要知其所以然 RAID 獨立硬盤冗余陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks),簡稱磁盤陣列 RAID的基本思想 其基本思想就是把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到…

    Linux干貨 2016-05-20
  • 搭建一套LVS-DR模型的高性能集群(LVS-DR+Nginx+Mariadb+Nfs+php-fpm+wordpress)

    架構簡介 參加馬哥linux培訓一周了,自己感覺每天都進步很多,現在來說說這個架構,也是架構師第一周的作業第二題。搭建一套LVS-DR模型的高性能集群,做了兩天終于完成并實現了這個架構,我設計的架構圖如下所示: 此架構主要是用ipvsadm來實現高性能集群,Realserver(RS1,RS2)安裝配置nginx,RS服務器分別配置了一個內網,一個外網。正?!?/p>

    Linux干貨 2016-12-06
  • Linux-運維之半自動化安裝系統

    CentOS系統安裝             系統啟動流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init 安裝程序啟動過程:         &nbs…

    2017-07-24
  • 第六周:vim編輯器和cron計劃任務的使用練習

    查看vim編輯器的使用介紹另見:http://afterdawn.blog.51cto.com/7503144/1855557 at及cront計劃任務介紹見:http://afterdawn.blog.51cto.com/7503144/1864365 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件…

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