<b>1、</b><b>httpd</b><b>路徑别名</b>
Alias
其存在在/etc/httpd/conf/目錄中httpd.conf檔案中,
<a target="_blank" href="http://blog.51cto.com/attachment/201304/205756474.png"></a>
其定義的文法格式為Alias /URL "local_path"
大概意思就是用一個簡單的路徑來映射長路徑:
如圖中, /icons/映射的路徑為 “/var/www/icons/”
<b> </b><b>例子:</b>
[root@Cyz ~]# mkdir -pv /bbs/forum //建立路徑
mkdir: created directory `/bbs'
mkdir: created directory `/bbs/forum'
[root@Cyz ~]# cd /bbs/forum/
[root@Cyz forum]# vim index.html //為其建立首頁并在其中添加資訊,大緻為
//Lujing Bieming –觀察而已
[root@Cyz forum]# vim /etc/httpd/conf/httpd.conf //編輯裡面,
//加上路徑别名Alias /luntan "/bbs/forum"
//需要注意,/luntan後是否有斜線需與
// “//bbs/forum”對應,存在應同時存在
[root@Cyz forum]# service httpd restart //重新開機網絡服務
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@Cyz forum]#
然後打開浏覽器輸入 172.16.111.1/luntan檢視内容,
<a target="_blank" href="http://blog.51cto.com/attachment/201304/205821249.png"></a>
<b>2</b><b>、虛拟主機</b>
首先,我們來為虛拟主機分下類:
虛拟主機:
基于IP的虛拟主機;
基于端口的虛拟主機;
基于域名的虛拟主機;
虛拟主機的定義格式如下:
<VirtualHost HOST>
</VirtualHost>
<b>①前提</b>:得先取消中心主機,注釋中心主機的DocumentRoot即可。因為虛拟主機和中心主機不能同時使用。/etc/httpd/conf/httpd.comf
<a target="_blank" href="http://blog.51cto.com/attachment/201304/205858497.png"></a>
<b>②建立虛拟主機</b>:
有2中方法:在/etc/httpd/conf/httpd.comf中定義VirtualHost,或者在conf.d目錄下建立,這裡選取在conf.d中建立
[root@Cyz conf.d]# vim virtual.conf
// 首先我們來建立基于不同IP的虛拟主機
<VirtualHost 172.16.111.1:80> //:80是指web的預設端口80
ServerName hell.magedu.com
DocumentRoot "/www/magedu.com"
<VirtualHost 172.16.111.2:80>
ServerName www.a.org
DocumentRoot "/www/a.org"
:wq //儲存退出
然後由于我們的檔案目錄還沒建立,這裡我們去建立這些目錄檔案
[root@Cyz ~]# mkdir -pv /www/{magedu.com,a.org}
mkdir: created directory `/www'
mkdir: created directory `/www/magedu.com'
mkdir: created directory `/www/a.org'
//建立目錄完成,下一步建立index.html檔案
[root@Cyz ~]# cd /www/magedu.com/
[root@Cyz magedu.com]# vim index.html
//index.html檔案中可随意添加,起到注釋作用即可。
[root@Cyz magedu.com]# cd /www/a.org/
[root@Cyz a.org]# vim index.html //同上
[root@Cyz a.org]# service httpd restart //重新開機網絡服務
//這個時候。我們還沒有為172.16.111.2添加别名,是以:
[root@Cyz a.org]# ip addr add 172.16.111.2/16 dev eth0 //添加别名
[root@Cyz a.org]# ip addr show //檢視别名
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:15:c3:cf brd ff:ff:ff:ff:ff:ff
inet 172.16.111.1/16 brd 172.16.255.255 scope global eth0
inet 172.16.111.2/16 scope global secondary eth0 //這裡說明已經添加完成
這裡,我們已經做好了基于IP的虛拟主機,這個時候我們打開ie浏覽器來檢視
然後,我們來建立基于不同端口的虛拟主機:
我們這裡繼續編輯
//在其中加入
<VirtualHost 172.16.111.1:8080>
ServerName www.b.net
DocumentRoot "/www/b.net"
:wq
//繼續去建立一個b.net目錄并建立index.html(方法同上)
[root@Cyz www]# mkdir b.net
[root@Cyz www]# cd b.net
[root@Cyz b.net]# vim index.html //内容起到标示作用即可
//然後到conf/httpd.conf中啟用監聽端口8080
[root@Cyz b.net]# vim /etc/httpd/conf/httpd.conf
//找到Listen 80在其下添加
Listen 8080
[root@Cyz b.net]# service httpd restart //重新開機網絡服務
然後我們繼續通路
<a target="_blank" href="http://blog.51cto.com/attachment/201304/205932875.png"></a>
然後,我們來建立基于不同域名的虛拟主機:
首先我們要啟用NameVirtualHost并制定在哪個位址上,監聽哪個端口
//這裡同樣可以在httpd.conf中定義,也可以在我們在conf.d目錄中建立的檔案中定義,這裡我們依然在conf.d目錄中的檔案中定義
[root@Cyz ~]# vim /etc/httpd/conf.d/virtual.conf
//在頭部添加
NameVirtualHost 172.16.111.2:80 //這裡表明在111.2:80上實作不同域名的虛拟主機
//然後我們繼續在下面添加
ServerName www.d.gov
DocumentRoot "/www/d.gov"
:wq
//繼續建立目錄與檔案
[root@Cyz www]# mkdir d.gov
[root@Cyz www]# cd d.gov
[root@Cyz d.gov]# vim index.html //内容起到标示作用即可
//這裡需要注意的是:如果通路,需要能夠解析兩個主機名,最簡單的方式就是編輯實體機的hosts檔案,或者建立一個DNS伺服器把那2個主機名解析到自己的主機下。這裡我們用簡單的方法編輯本機的hosts檔案:
//在hosts檔案中加入
172.16.111.2 www.a.org
172.16.111.2 www.d.gov
hosts檔案路徑:
<a target="_blank" href="http://blog.51cto.com/attachment/201304/210252226.png"></a>
然後我們進行測試通路
<a target="_blank" href="http://blog.51cto.com/attachment/201304/210324314.png"></a>
到這裡,我們已經完成了對虛拟主機的建立。
<b>③為不同的站點添加各自的日志</b>
如果我們沒有在conf.d下的virtual.conf中定義日志的存放位子。那麼它就全部存在放了/var/log/httpd中,如果想更好的管理,将日志予以分類,我們便可以在virtual.conf中定義:
NameVirtualHost 172.16.111.2:80
<VirtualHost 172.16.111.1:80>
CustomLog /var/log/httpd/magedu.com/access_log combined //添加内容
//combined表示格式,前邊表示通路時的存放路徑
CustomLog /var/log/httpd/a.org/access_log combined //添加内容
CustomLog /var/log/httpd/d.gov/access_log combined //添加内容
CustomLog /var/log/httpd/b.net/access_log combined //添加内容
//然後到var/log目錄中建立這些目錄
[root@Cyz ~]# cd /var/log/httpd/
[root@httpd ]# mkdir a.org b.net d.gov magedu.com
[root@Cyz httpd]# service httpd restart //重新開機網絡服務
然後在浏覽器分别對這些網站進行通路
[root@Cyz httpd]# tree //檢視日志是否生成
.
|-- a.org
| `-- access_log
|-- access_log
|-- access_log.1
|-- b.net
|-- d.gov
|-- error_log
|-- error_log.1
`-- magedu.com
`-- access_log
4 directories, 8 files
//可以tail指令檢視日志内容
<b>3</b><b>、使用者認證</b>
如上實驗。如果我們希望使用者通路a.org的時候,要通過使用者登入才能夠通路
[root@Cyz httpd]# vim /etc/httpd/conf.d/virtual.conf
//編輯檔案,在2:80中添加
CustomLog /var/log/httpd/a.org/access_log combined
<Directory "/www/a.org"> ///
Options none
AllowOverride authconfig
AuthType basic
AuthName "Restrict area."
AuthUserFile "/etc/httpd/.htpasswd"
Require valid-user //所有使用者
</Directory>
//然後建立使用者
[root@Cyz ~]# htpasswd -c -m /etc/httpd/.htpasswd tom
// -c表示指定路徑,第一次建立的時候需要指出第二次不必,加上會覆寫原先的
New password: //不顯示的輸入
Re-type new password:
Adding password for user tom //建立成功
[root@Cyz ~]# httpd –t //檢查文法錯誤
Syntax OK
[root@Cyz ~]# service httpd restart //重新開機網絡服務
然後來進行測試通路
<a target="_blank" href="http://blog.51cto.com/attachment/201304/210353922.png"></a>
輸入使用者名即可通路
本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1175692,如需轉載請自行聯系原作者