nginx下的多站點的默認主機配置

Nginx首先選定由哪一個虛擬主機來處理請求?

讓我們從一個簡單的配置(其中全部3個虛擬主機都在端口*:80上監(jiān)聽)開始:

server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name example.net www.example.net;
...
}
server {
listen 80;
server_name example.com www.example.com;
...
}

在這個配置中房维,nginx僅僅檢查請求的“Host”頭以決定該請求應由哪個虛擬主機來處理捉片。如果Host頭沒有匹配任意一個虛擬主機,或者請求中根本沒有包含Host頭单匣,那nginx會將請求分發(fā)到定義在此端口上的默認虛擬主機蚁阳。在以上配置中,第一個被列出的虛擬主機即nginx的默認虛擬主機——這是nginx的默認行為鸽照。而且螺捐,可以顯式地設置某個主機為默認虛擬主機,即在"listen"指令中設置"default_server"參數(shù):

server {
listen 80 default_server;
server_name example.net www.example.net;
...
}

"default_server"參數(shù)從0.8.21版開始可用。在之前的版本中定血,應該使用"default"參數(shù)代替赔癌。
請注意"default_server"是監(jiān)聽端口的屬性,而不是主機名的屬性澜沟。

一個簡單PHP站點配置

server {
listen 80;
server_name example.org www.example.org;
root /data/www;
location / {
index index.html index.php;
}
location ~* .(gif|jpg|png)$ {
expires 30d;
}
location ~ .php$ {
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}

首先灾票,nginx使用前綴匹配找出最準確的location,這一步nginx會忽略location在配置文件出現(xiàn)的順序茫虽。上面的配置中刊苍,唯一的前綴匹配location是"/",而且因為它可以匹配任意的請求濒析,所以被作為最后一個選擇正什。接著,nginx繼續(xù)按照配置中的順序依次匹配正則表達式的location号杏,匹配到第一個正則表達式后停止搜索舰讹。匹配到的location將被使用丹墨。如果沒有匹配到正則表達式的location,則使用剛剛找到的最準確的前綴匹配的location,現(xiàn)在讓我們來看使用上面的配置头遭,請求是怎樣被處理的:

  • 請求"/logo.gif"首先匹配上location "/",然后匹配上正則表達式"\.(gif|jpg|png)$"这揣。因此析珊,它將被后者處理。根據(jù)"root /data/www"指令蜈块,nginx將請求映射到文件/data/www/logo.gif"鉴腻,并發(fā)送這個文件到客戶端。
  • 請求"/index.php"首先也匹配上location "/"百揭,然后匹配上正則表達式"\.(php)$"爽哎。 因此,它將被后者處理器一,進而被發(fā)送到監(jiān)聽在localhost:9000的FastCGI服務器课锌。fastcgi_param指令將FastCGI的參數(shù)SCRIPT_FILENAME的值設置為"/data/www/index.php",接著FastCGI服務器執(zhí)行這個文件祈秕。變量$document_root等于root指令設置的值渺贤,變量$fastcgi_script_name的值是請求的uri,"/index.php"请毛。
  • 請求"/about.html"僅能匹配上location "/"志鞍,因此,它將使用此location進行處理方仿。根據(jù)"root /data/www"指令固棚,nginx將請求映射到文件"/data/www/about.html"统翩,并發(fā)送這個文件到客戶端。
  • 請求"/"的處理更為復雜此洲。它僅能匹配上location "/"厂汗,因此,它將使用此location進行處理呜师。然后娶桦,index指令使用它的參數(shù)和"root /data/www"指令所組成的文件路徑來檢測對應的文件是否存在。如果文件/data/www/index.html不存在汁汗,而/data/www/index.php存在衷畦,此指令將執(zhí)行一次內部重定向到"/index.php",接著nginx將重新尋找匹配"/index.php"的location碰酝,就好像這次請求是從客戶端發(fā)過來一樣霎匈。正如我們之前看到的那樣,這個重定向的請求最終交給FastCGI服務器來處理送爸。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末铛嘱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子袭厂,更是在濱河造成了極大的恐慌墨吓,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纹磺,死亡現(xiàn)場離奇詭異帖烘,居然都是意外死亡,警方通過查閱死者的電腦和手機橄杨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門秘症,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人式矫,你說我怎么就攤上這事乡摹。” “怎么了采转?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵聪廉,是天一觀的道長。 經常有香客問我故慈,道長板熊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任察绷,我火速辦了婚禮干签,結果婚禮上,老公的妹妹穿的比我還像新娘拆撼。我一直安慰自己筒严,他們只是感情好丹泉,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布情萤。 她就那樣靜靜地躺著鸭蛙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筋岛。 梳的紋絲不亂的頭發(fā)上娶视,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音睁宰,去河邊找鬼肪获。 笑死,一個胖子當著我的面吹牛柒傻,可吹牛的內容都是我干的孝赫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼红符,長吁一口氣:“原來是場噩夢啊……” “哼青柄!你這毒婦竟也來了?” 一聲冷哼從身側響起预侯,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤致开,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后萎馅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體双戳,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年糜芳,在試婚紗的時候發(fā)現(xiàn)自己被綠了飒货。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡峭竣,死狀恐怖塘辅,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情邪驮,我是刑警寧澤莫辨,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站毅访,受9級特大地震影響沮榜,放射性物質發(fā)生泄漏。R本人自食惡果不足惜喻粹,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一蟆融、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧守呜,春花似錦型酥、人聲如沸山憨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郁竟。三九已至,卻和暖如春由境,著一層夾襖步出監(jiān)牢的瞬間棚亩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工虏杰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讥蟆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓纺阔,卻偏偏與公主長得像瘸彤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子笛钝,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容

  • Nginx簡介 解決基于進程模型產生的C10K問題,請求時即使無狀態(tài)連接如web服務都無法達到并發(fā)響應量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,003評論 0 9
  • CGI 通用網關接口(Common Gateway Interface)是一個Web服務器主機提供信息服務的標準接...
    沒我找不到電子書閱讀 1,928評論 1 4
  • 1.ngnix介紹 ngnix www服務軟件 俄羅斯人開發(fā) 開源 性能很高 本身是一款靜態(tài)WWW軟件 靜態(tài)小文件...
    逗比punk閱讀 2,093評論 1 6
  • 1. Nginx的模塊與工作原理 Nginx由內核和模塊組成质况,其中,內核的設計非常微小和簡潔婆翔,完成的工作也非常簡單...
    rosekissyou閱讀 10,214評論 5 124
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理拯杠,服務發(fā)現(xiàn),斷路器啃奴,智...
    卡卡羅2017閱讀 134,656評論 18 139