前言
所謂虛擬主機,是說通過幾個不同的url位址,都能到達nginx環境,只不過針對不同的url,處理的邏輯不同。
nginx支援虛擬主機,但是瀏覽器等客戶端不知道,所以虛擬主機的幾個位址,應該是都指向nginx所在的ip位址,虛擬主機功能才能正常。
環境系統環境:centos6.7
nginx version: nginx/1.8.1
方案例如配置檔案位於:/opt/nginx/conf/nginx.conf
在http {}的最後,新增如下行:
include vhosts/*.conf;
即主配置檔案包含/opt/nginx/conf/vhosts/ 目錄下的所有*.conf 的子配置檔案。[注:vhosts目錄需手動建立]
新增子配置檔案後,還需要通過/opt/nginx/sbin/nginx -t檢查配置檔案正確性
示例下面是乙個php站點的vhost:
vim www.domain.com.conf
server
location /
}高階特性
基於網域名稱的虛擬主機
nginx首先選定由哪乙個虛擬主機來處理請求,例如如下3個虛擬主機都監聽在*:80埠
server
server
server
在這個配置中,nginx僅僅檢查請求的「host」頭以決定該請求應由哪個虛擬主機來處理。如果host頭沒有匹配任意乙個虛擬主機,或者請求中根本沒有包含host頭,那nginx會將請求分發到定義在此埠上的預設虛擬主機。在以上配置中,第乙個被列出的虛擬主機即nginx的預設虛擬主機——這是nginx的預設行為。而且,可以顯式地設定某個主機為預設虛擬主機,即在」listen」指令中設定」default_server」引數:
server
基於網域名稱和ip混合的虛擬主機
下面這個配置裡,有幾個虛擬主機在不同的位址上監聽:
server
server
server
這個配置中,nginx首先測試請求的ip位址和埠是否匹配某個server配置塊中的listen指令配置。接著nginx繼續測試請求的host頭是否匹配這個server塊中的某個server_name的值。如果主機名沒有找到,nginx將把這個請求交給預設虛擬主機處理。例如,乙個從192.168.1.1:80埠收到的訪問www.example.com的請求將被監聽192.168.1.1:80埠的預設虛擬主機處理,本例中就是第乙個伺服器,因為這個埠上沒有定義名為wwrpwiuryxw.example.com的虛擬主機。
預設伺服器是監聽埠的屬性,所以不同的監聽埠可以設定不同的預設伺服器:
server
server
server
server_name匹配順序
1.準確的server_name匹配,例如:
server
2.以*萬用字元開始的字串:
server
3.以*萬用字元結束的字串:
server
4.匹配正規表示式:
server
總結
Nginx虛擬主機配置
0.nginx簡介 nginx engine x 是乙個高效能的 http 和 反向 伺服器,也是乙個 imap pop3 smtp 伺服器。nginx 已經因為它的穩定性 豐富的功能集 示例配置檔案和低系統資源的消耗而聞名了。1.nginx使用注意事項 2.nginx相關檔案 3.nginx虛擬主...
nginx虛擬主機配置
就是在一台伺服器啟動多個 如何區分不同的 1 網域名稱不同 2 埠不同 乙個server節點就是乙個虛擬主機,可以配置多個server,配置多個虛擬主機,html是nginx安裝目錄下的html目錄。乙個網域名稱對應乙個ip位址,乙個ip位址可以被多個網域名稱繫結。本地測試可以修改hosts檔案。修...
nginx虛擬主機配置
虛擬主機的配置有多種 一 color green b 基於ip的虛擬主機 b color 二 color green b 基於埠的虛擬主機 b color 三 color green b 基於網域名稱的虛擬主機 b color 對於nginx要實現虛擬主機,通過nginx.cnf中的server進行...