一、WWW服務器虛擬主機原理
WWW服務器虛擬主機是指使用一臺物理機器,充當多個主機名的WWW服務器。比如由一臺機器同時提供 http://www.company1.com, http://www.company2.com 等的WWW服務,而瀏覽這些WWW站點的用戶感覺 不到這種方式下跟由不同的機器提供不同的服務有什麼差別。
使用WWW虛擬主機的好處在於,一些小規模的網站,通過跟其他網站共享同一臺物理機器,可以減少系統的運行成本,並且可以減少管理的難度。另外,對於個人用戶,也可以使用這種虛擬主機方式來建立有自己獨立域名的WWW服務器,目前國內有很多公司都提供這種免費的服務。
1.1 基於IP地址的虛擬主機方式
1.2 基於主機名的虛擬主機方式
在配置文件下進行設置相關的配置
[root@desktop40 ~]# vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName desktop40.example.com
ServerAlias desktop40
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /www40/virtual
ServerName www40.example.com
ServerAlias www40
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
mkdir -p /www40/virtual
[root@desktop40 ~]#
chcon --reference=/var/www/html/ /www40 -R //selinux上下文的權限
[root@desktop40 ~]#
cd /www40/virtual/
[root@desktop40 ~]#
echo 'www40.example.com'>index.html
記得得有域名的解析所以
[root@desktop40 ~]#
vi /etc/hosts
192.168.0.40 desktop40.example.com
192.168.0.40 www40.example.com
接下來重啓服務
實驗看是否成功,記得防火牆和selinux的問題將其擋掉!!!
(1)修改配置文件
vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /www40/virtual
ServerName www40.example.com
ServerAlias www40
ScriptAlias /cgi-bin/ "/www40/virtual/cgi-bin/" //別名~
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<Directory "/www40/virtual/private"> //以下是關於私有文件的訪問控制。
authname "josion"
authtype basic
authuserfile /etc/httpd/.htpasswd
require user josion
</Directory>
(2)mkdir /www40/virtual/cgi-bin
mkdir /www40/virtual/private
cd /www40/virtual/cgi-bin
wget ftp://instructor/pub/gls/special.cgi .
chcon --reference=/var/www/cgi-bin /www40/virtual/cgi-bin -R
cd /www40/virtual/private
echo private > index.html
chcon --reference=/var/www/html /www40virtual/private -R
(3)htpasswd -cm /etc/httpd/.htpasswd josion(輸入密碼)
(4)service httpd restart