nginx基於ip的虛擬主機

文章來源

運維公會:nginx基於ip的虛擬主機

 

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 去查看

1.png

輔助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、總結

可以將許多虛擬主機寫在同一個配置文件中,但是這樣在後期維護起來會很不方便(作者深有體會,尤其是在接別人維護過的平臺的)。儘量多寫幾個配置文件,這樣看起來簡短,方便閱讀。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章