【基本介紹】
apache 和 nginx 多站點部署,一般情況有基于端口,基于域名,基于IP。
【基于域名】
每個虛拟主機的站點放在不同目錄中,并配置不同的域名
#第一個虛拟主機
server{
listen 80 ; #監聽的端口
server_name aaa.domain.com; #主機名稱
access_log logs/aaa.domain.com.access.log combined ; #通路日志檔案存放路徑
location /
{
index index.html index.htm;
root /data0/htdocs/aaa.domain.com;
}
}
#第二個虛拟主機
server{
listen 80;
server_name www.domain.com domain.com *.domain.com;
access_log logs/bbb.domain.com.access.log bombined ;
location /
{
index index.html index.htm ;
root /data0/htdocs/domain.com;
}
}
}
apache:
NameVirtualHost *:80
<VirtualHost 第一個域名>
DocumentRoot /var/www/html/website1
ServerName 第一個域名</VirtualHost>
<VirtualHost 第二個域名>
DocumentRoot /var/www/html/website2
ServerName 第二個域名</VirtualHost>
<VirtualHost 第三個域名>
DocumentRoot /var/www/html/website3
ServerName 第三個域名</VirtualHost>
【基于端口号】
基于端口号的虛拟主機是通過給每個server配置一個不同的監聽端口實作的
server{
listen 80 ; #監聽的端口
access_log logs/aaa.domain.com.access.log combined ;
location /
{
index index.html index.htm;
root /data0/htdocs/aaa.domain.com;
}
}
#第二個虛拟主機
server{
listen 88; #監聽不同的端口
access_log logs/bbb.domain.com.access.log bombined ;
location /
{
index index.html index.htm ;
root /data0/htdocs/domain.com;
}
}
}
apache:
<VirtualHost ip:80>
DocumentRoot /var/www/html/website1
ServerName localhost:80</VirtualHost>
<VirtualHost ip:81>
DocumentRoot /var/www/html/website2
ServerName localhost:81</VirtualHost>
<VirtualHost ip:82>
DocumentRoot /var/www/html/website3
ServerName localhost:82</VirtualHost>
【基于ip】-> 未測試
IP别名背後的概念很簡單:可以在一塊實體網卡上綁定多個IP位址.這樣就能夠在使用單一網卡的同一伺服器上運作多個基于IP的虛拟主機.
如果要在eth0網卡裝置上添加兩個IP别名192.168.8.43和192.168.8.44可以通過以下ifconfig 和route指令來進行:
/sbin/ifconfig eth0:1 192.168.8.43 broadcast 192.168.8.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.8.43 dev eth0:1
/sbin/ifconfig eth0:2 192.168.8.44 broadcast 192.168.8.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.8.44 dev eth0:2
配置後如果能從另外一台伺服器ping 192.168.8.43和192.168.8.44 ,如果能ping通,則證明配置無誤.
但是通過ifconfig 和route配置的IP别名在伺服器重新開機後會消失.不過可以将這兩條指令添加到/etc/rc.local檔案中,讓系統開機時自動運作,
vi /etc/rc.local在檔案末尾增加以下内容,然後儲存即可.
/sbin/ifconfig eth0:1 192.168.8.43 broadcast 192.168.8.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.8.43 dev eth0:1
/sbin/ifconfig eth0:2 192.168.8.44 broadcast 192.168.8.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.8.44 dev eth0:2
分别對192.168.8.43,192.168.8.44,192.168.8.45三個IP配置三個純靜态HTML支援的虛拟主機
http{
#第一個虛拟主機
server{
listen 192.168.8.43:80; #監聽的IP和端口
server_name 192.168.8.43; #主機名稱
access_log logs/sever1.access.log combined ; #通路日志檔案存放路徑
location /
{
#預設首頁檔案,順序從左到右,如果找不到index.html,則找index.htm
index index.html index.htm
#HTML網頁檔案存放的目錄
root /data0/htdocs/server1;
}
}
#第二個虛拟主機
server{
listen 192.168.8.44:80;
server_name 192.168.8.44;
access_log logs/sever2.access.log combined ;
location /
{
#預設首頁檔案,順序從左到右,如果找不到index.html,則找index.htm
index index.html index.htm
#HTML網頁檔案存放的目錄
root /data0/htdocs/server2;
}
}
【參考】
[url]http://blog.csdn.net/guzhouke19910920/article/details/7992498[/url]
[url]http://blog.csdn.net/winter13292/article/details/8364620[/url]
[url]http://blog.openlg.net/index.php/archives/266[/url]
[url]http://blog.csdn.net/winter13292/article/details/8364620[/url]