天天看點

apache nginx 多站點部署

【基本介紹】

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]

繼續閱讀