ngx_http_upstream_conf_module 模組

範例設定
指令
     upstream_conf

ngx_http_upstream_conf_module 模組允許透過簡單的 HTTP 介面,即時設定上游伺服器群組,而無需重新啟動 nginx。 httpstream 伺服器群組必須駐留在共享記憶體中。

此模組在 1.13.10 版本之前是我們商業訂閱的一部分。它在 1.13.3 版本中被 ngx_http_api_module 模組取代。

範例設定

upstream backend {
    zone upstream_backend 64k;

    ...
}

server {
    location /upstream_conf {
        upstream_conf;
        allow 127.0.0.1;
        deny all;
    }
}

指令

語法 upstream_conf;
預設
上下文 location

在周圍的 location 中啟用上游設定的 HTTP 介面。應限制對此 location 的存取。

組態指令可用於

由於群組中的位址不一定要唯一,因此群組中的特定伺服器會以其 ID 來參照。 ID 會自動分配,並在新增伺服器或檢視群組設定時顯示。

組態指令由作為請求參數傳遞的參數組成,例如

http://127.0.0.1/upstream_conf?upstream=backend

支援以下參數

stream=
選取 stream 上游伺服器群組。若無此參數,則選取 http 上游伺服器群組。
upstream=name
選取要處理的群組。此參數為必要參數。
id=number
選取要檢視、修改或移除的伺服器。
remove=
從群組中移除伺服器。
add=
將新伺服器新增至群組。
backup=
新增備份伺服器時為必要參數。
在 1.7.2 版本之前,檢視、修改或移除現有的備份伺服器也需要 backup=
server=address
httpstream 上游伺服器的 "address" 參數相同。

新增伺服器時,可以將其指定為網域名稱。在這種情況下,對應於網域名稱的 IP 位址變更將受到監控,並自動應用於上游設定,而無需重新啟動 nginx (1.7.2)。這需要 httpstream 區塊中的 "resolver" 指令。另請參閱 httpstream 上游伺服器的 "resolve" 參數。

service=name
httpstream 上游伺服器的 "service" 參數相同 (1.9.13)。
weight=number
httpstream 上游伺服器的 "weight" 參數相同。
max_conns=number
httpstream 上游伺服器的 "max_conns" 參數相同。
max_fails=number
httpstream 上游伺服器的 "max_fails" 參數相同。
fail_timeout=time
httpstream 上游伺服器的 "fail_timeout" 參數相同。
slow_start=time
httpstream 上游伺服器的 "slow_start" 參數相同。
down=
httpstream 上游伺服器的 "down" 參數相同。
drain=
http 上游伺服器置於「排空」模式 (1.7.5)。在此模式下,只有繫結至伺服器的請求才會被代理到該伺服器。
up=
httpstream 上游伺服器的 "down" 參數相反。
route=string
http 上游伺服器的 "route" 參數相同。

前三個參數選取一個物件。這可以是整個 http 或 stream 上游伺服器群組,或特定的伺服器。若沒有其他參數,則會顯示所選群組或伺服器的設定。

例如,若要檢視整個群組的設定,請傳送

http://127.0.0.1/upstream_conf?upstream=backend

若要檢視特定伺服器的設定,也請指定其 ID

http://127.0.0.1/upstream_conf?upstream=backend&id=42

若要新增伺服器,請在 "server=" 參數中指定其位址。若未指定其他參數,則會使用預設值設定其他參數來新增伺服器 (請參閱 httpstream "server" 指令)。

例如,若要新增新的主要伺服器,請傳送

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080

若要新增新的備份伺服器,請傳送

http://127.0.0.1/upstream_conf?add=&upstream=backend&backup=&server=127.0.0.1:8080

若要新增新的主要伺服器,請將其參數設定為非預設值並標記為 "down",請傳送

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080&weight=2&down=

若要移除伺服器,請指定其 ID

http://127.0.0.1/upstream_conf?remove=&upstream=backend&id=42

若要將現有的伺服器標記為 "down",請傳送

http://127.0.0.1/upstream_conf?upstream=backend&id=42&down=

若要修改現有伺服器的位址,請傳送

http://127.0.0.1/upstream_conf?upstream=backend&id=42&server=192.0.2.3:8123

若要修改現有伺服器的其他參數,請傳送

http://127.0.0.1/upstream_conf?upstream=backend&id=42&max_fails=3&weight=4

以上範例適用於 http 上游伺服器群組。 stream 上游伺服器群組的類似範例則需要 "stream=" 參數。