配置例子
upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.example.com:8080 backup; server backup2.example.com:8080 backup;}server { location / { proxy_pass http://backend; }}
指令
語法: | upstream name { ... } |
默認值: | — |
上下文: | http |
定義一組服務器。 這些服務器可以監聽不同的端口。 而且,監聽在TCP和UNIX域套接字的服務器可以混用。
例子:
upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3;}
默認情況下,nginx按加權輪轉的方式將請求分發到各服務器。 在上面的例子中,每7個請求會通過以下方式分發: 5個請求分到backend1.example.com, 一個請求分到第二個服務器,一個請求分到第三個服務器。 與服務器通信的時候,如果出現錯誤,請求會被傳給下一個服務器,直到所有可用的服務器都被嘗試過。 如果所有服務器都返回失敗,客戶端將會得到最后通信的那個服務器的(失?。╉憫Y果。
語法: | server address [parameters]; |
默認值: | — |
上下文: | upstream |
定義服務器的地址address和其他參數parameters。 地址可以是域名或者IP地址,端口是可選的,或者是指定“unix:”前綴的UNIX域套接字的路徑。如果沒有指定端口,就使用80端口。 如果一個域名解析到多個IP,本質上是定義了多個server。
你可以定義下面的參數:weight=number設定服務器的權重,默認是1。max_fails=number設定Nginx與服務器通信的嘗試失敗的次數。在fail_timeout參數定義的時間段內,如果失敗的次數達到此值,Nginx就認為服務器不可用。在下一個fail_timeout時間段,服務器不會再被嘗試。 失敗的嘗試次數默認是1。設為0就會停止統計嘗試次數,認為服務器是一直可用的。 你可以通過指令proxy_next_upstream、 fastcgi_next_upstream和memcached_next_upstream來配置什么是失敗的嘗試。 默認配置時,http_404狀態不被認為是失敗的嘗試。fail_timeout=time設定
統計失敗嘗試次數的時間段。在這段時間中,服務器失敗次數達到指定的嘗試次數,服務器就被認為不可用。 服務器被認為不可用的時間段。默認情況下,該超時時間是10秒。backup標記為備用服務器。當主服務器不可用以后,請求會被傳給這些服務器。down標記服務器永久不可用,可以跟ip_hash指令一起使用。
新聞熱點
疑難解答