文章來源
1、什麼是虛擬主機
虛擬主機使用特殊的技術,將一臺運行的服務器,在邏輯上劃分成多個主機。這樣做主要是能讓一臺物理服務器上運行多個網站程序,這樣就可以利用起來服務器剩餘的空間。充分發揮服務器的作用。虛擬主機間,是完全獨立的。這樣在建立網站平臺的時候,只需要使用一個nginx軟件,就能運行多個基於ip或者基於域名的網站。
2、基於ip的虛擬主機
一般配置外網網站都用域名去配置虛擬主機,當我們在內網中的同一個服務器上邊部署多個應用的時候,可以使用ip的方式去配置虛擬主機。當然在內網配置域名的也行,其實叫主機名更合適,這裏就不探討了。
(1)首先在一個服務器上配置上虛擬ip
這步相當重要,全憑這個虛擬ip才能讓請求,到正確的應用。
下邊是linux配置虛擬ip的方法,有兩種方式去建立虛擬ip,下邊不進行詳細的講解,後邊會專門寫這兩種建立虛擬ip方法的文章。
別名ip建立方法:
ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 up
這個就是建立一塊名爲eth0:1,ip爲192.168.8.5,子網掩碼是255.255.255.0的虛擬網卡。
然後用ifconfig –a 去查看
輔助ip建立方法:
ip addr add 192.168.40.20/24 dev eth0
這種建立後的ip,不能使用ifconfig –a去查看,只能使用ip a去查看。但是如果是別名ip,使用這種方法去查看也是可以的。
想要永久生效虛擬ip,就寫到配置文件中去。
(2)nginx.conf中的配置
只要在nginx.conf中添加上下邊的字段。
include vhosts/*.conf;
上邊的字段只要在http模塊中添加就可以。
然後在nginx的conf目錄中創建vhosts目錄,如果有就不要創建。
(3)添加虛擬主機配置文件
在vhosts目錄中添加明確的.conf配置文件,名字任意起,最好和部署的應用有關係的名字,方便後期維護。
server1.conf
server {
listen 80;
#配置監聽的端口,只要配置80即可,無論寫多少個虛擬主機都用80端口
server_name 192.168.8.4;
#這個是最主要的,配置需要的域名。
root /usr/local/nginx/html/wp1/;
#寫清楚項目路徑,這個也是非常重要的,千萬不要配置錯。
access_log /usr/local/nginx/logs/wp1/access.log main;
#訪問日誌寫清楚,不寫也可以,在生產環境必須要配置清楚,將日誌獨立出來。
location /{
index index.html index.htm;
}
}
server2.conf
server {
listen 80;
#配置監聽的端口,只要配置80即可,無論寫多少個虛擬主機都用80端口
server_name 192.168.8.5;
#這個是最主要的,配置需要的域名。
root /usr/local/nginx/html/wp2/;
#寫清楚項目路徑,這個也是非常重要的,千萬不要配置錯。
access_log /usr/local/nginx/logs/wp2/access.log main;
#訪問日誌寫清楚,不寫也可以,在生產環境必須要配置清楚,將日誌獨立出來。
location /{
index index.html index.htm;
}
}
上邊配置好後,重啓nginx或者reload都可以。
3、總結
可以將許多虛擬主機寫在同一個配置文件中,但是這樣在後期維護起來會很不方便(作者深有體會,尤其是在接別人維護過的平臺的)。儘量多寫幾個配置文件,這樣看起來簡短,方便閱讀。