upstream servers.com
location /
location [=|~|~*|^~] /uri/
= 開頭表示精確匹配
^~ 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。
~ 開頭表示區分大小寫的正則匹配
~* 開頭表示不區分大小寫的正則匹配
!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配 的正則
/ 通用匹配,任何請求都會匹配到。
這裡注意 / 要用root
其他的匹配要用alias,否則訪問其他匹配會出現404
例項:upstream中server指令語法如下:1. 訪問根目錄/,比如http://
localhost/將匹配規則a
2. 訪問 http://
localhost/login 將匹配規則b,
則匹配規則h
3. 訪問 http://
localhost/static/a.html 將匹配規則c
4. 訪問 http://
將匹配規則d和規則e,但是規則d順序優先,規則e不起作用,而http:
//localhost/static/c.png則優先匹配到規則c
5. 訪問 http://
localhost/a.png 則匹配規則e,而不會匹配規則d,因為規則e不區分大小寫。
6. 訪問 http://
localhost/a.xhtml 不會匹配規則f和規則g,
不會匹配規則g,因為不區分大小寫。規則f,規則g屬於排除法,符合匹配規則但是不會匹配到,所以想想看實際應用中**會用到。
7. 訪問 http://
localhost/category/id/1111 則最終匹配到規則h,因為以上規則都不匹配,這個時候應該是nginx**請求給後端應用伺服器,比如fastcgi(php),tomcat(jsp),nginx作為方向**伺服器存在。
server address [parameters]
關鍵字server必選。
address也必選,可以是主機名、網域名稱、ip或unix socket,也可以指定埠號。
parameters是可選引數,可以是如下引數:
down:表示當前server已停用
backup:表示當前server是備用伺服器,只有其它非backup後端伺服器都掛掉了或者很忙才會分配到請求。
輪詢是upstream的預設分配方式,即每個請求按照時間順序輪流分配到不同的後端伺服器,如果某個後端伺服器down掉後,能自動剔除。
upstream backend
輪詢的加強版,即可以指定輪詢比率,weight和訪問機率成正比,主要應用於後端伺服器異質的場景下。
upstream backend
weight:表示當前server負載權重,權重越大被請求機率越大。預設是1.
每個請求按照訪問ip(即nginx的前置伺服器或者客戶端ip)的hash結果分配,這樣每個訪客會固定訪問乙個後端伺服器,可以解決session一致問題。
upstream backend
fair顧名思義,公平地按照後端伺服器的響應時間(rt)來分配請求,響應時間短即rt小的後端伺服器優先分配請求。
upstream backend
與ip_hash類似,但是按照訪問url的hash結果來分配請求,使得每個url定向到同乙個後端伺服器,主要應用於後端伺服器為快取時的場景下。
upstream backend
upstream中server指令語法如下: server address [parameters] 關鍵字server必選。 address也必選,可以是主機名、網域名稱、ip或unix socket,也可以指定埠號。 parameters是可選引數,可以是如下引數: down:表示當前server已停用 backup:表示當前server是備用伺服器,只有其它非backup後端伺服器都掛掉了或者很忙才會分配到請求。
1.隨便找個地方放靜態頁面和位址
mkdir home
2.nginx配置
}關於root和index的解釋:
我們換個例子 比如下面的配置
server上面的例子中,如果你使用lhw或lhw888直接發起請求,那麼首先會訪問到location ~\.php$
}
「/」
的location
,結合root
與index
指令,會先判斷/data/aaa/index.html
是否存在,如果不,則接著檢視/data/aaa/index.php
,如果存在,則使用/index.php
發起內部重定向,就像從客戶端再一次發起請求一樣,nginx會再一次搜尋location
,毫無疑問匹配到第二個~ \.php$
,從而訪問到/data/bbb/test/index.php
。
再nginx的sbin目錄下 執行./nginx -t 可以檢視配置是否正確
Nginx 四種配置方式
upstream 支援4種負載均衡排程演算法 a 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器 b ip hash 每個請求按訪問ip的hash結果分配,同乙個ip客戶端固定訪問乙個後端伺服器。可以保證來自同一ip的請求被打到固定的機器上,可以解決session問題。c url hash...
nginx 負載均衡5種配置方式
nginx 負載均衡5種配置方式 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。例如 upstream bakend 3 ip hash 每個請求按訪問i...
nginx 負載均衡5種配置方式
nginx 負載均衡5種配置方式 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。例如 upstream bakend 3 ip hash 每個請求按訪問i...