天天看點

nginx負載的健康狀況檢查

nginx負載均衡簡單配置

準備三台虛拟機來做這個實驗:

172.16.100.6        web伺服器

172.16.100.7        web伺服器

172.16.100.106    負載均衡伺服器

向web伺服器中放入測試檔案:

<code>&lt;</code><code>html</code><code>&gt;    </code>

<code>&lt;</code><code>head</code><code>&gt;    </code>

<code>&lt;</code><code>title</code><code>&gt;Welcome to nginx!&lt;/</code><code>title</code><code>&gt;    </code>

<code>&lt;/</code><code>head</code><code>&gt;    </code>

<code>&lt;</code><code>body</code> <code>bgcolor</code><code>=</code><code>"white"</code> <code>text</code><code>=</code><code>"black"</code><code>&gt;    </code>

<code>&lt;</code><code>center</code><code>&gt;&lt;</code><code>h1</code><code>&gt;Welcome to nginx! 172.16.100.6&lt;/</code><code>h1</code><code>&gt;&lt;/</code><code>center</code><code>&gt;    </code>

<code>&lt;/</code><code>body</code><code>&gt;    </code>

<code>&lt;/</code><code>html</code><code>&gt;</code>

<code>vi</code> <code>/usr/local/nginx/conf/nginx</code><code>.conf</code>

<code>user nginx nginx;worker_processes  1;</code>

<code>events {</code>

<code>    </code><code>worker_connections  1024;</code>

<code>}</code>

<code>http {</code>

<code>    </code><code>include       mime.types;</code>

<code>    </code><code>default_type  application</code><code>/octet-stream</code><code>;    </code>

<code>    </code><code>sendfile       on;</code>

<code>    </code><code>keepalive_timeout  65;</code>

<code>    </code><code>upstream webservs {</code>

<code>        </code><code>server 172.16.100.6 weight=1  max_fails=2  fail_timout=2;</code>

<code>        </code><code>server 172.16.100.7 weight=1  max_fails=2  fail_timout=2;</code>

<code>        </code><code>server 127.0.0.1:8083 backup;</code>

<code>    </code><code>}</code>

<code>    </code> 

<code>    </code><code>server {</code>

<code>        </code><code>listen     80;</code>

<code>        </code><code>server_name  localhost;</code>

<code>        </code><code>index index.html index.htm index.php; </code>

<code>         </code><code>location / {</code>

<code>             </code><code>proxy_pass webservs;</code>

<code>               </code><code>proxy_set_header X-Real-IP $remote_addr;</code>

<code>        </code><code>}</code>

<code>                </code> 

<code>         </code><code>error_page   500 502 503 504  </code><code>/50x</code><code>.html;</code>

<code>        </code><code>location = </code><code>/50x</code><code>.html {</code>

<code>            </code><code>root   html;</code>

<code>      </code><code>server {</code>

<code>            </code><code>listen     8083;</code>

<code>            </code><code>server_name  localhost;</code>

<code>            </code><code>index index.html index.htm; </code>

<code>            </code><code>root    </code><code>/web/errorpages</code><code>;</code>

mkdir -p web/errorpages

vi web/errorpages/index.html

sorry!.......

當兩台後端伺服器挂掉,就會使用本機的sever通路的頁面是sorry

定義upstream中server指令文法如下:

        server address [parameters]

        關鍵字server必選。

        address也必選,可以是主機名、域名、ip或unix socket,也可以指定端口号。

        parameters是可選參數,可以是如下參數:server address [ parameters ]

weight = NUMBER    權重

max_fails = NUMBER    最多錯誤幾次

fail_timeout = TIME       最多錯誤遲疑多長時間,不确定預設10s 

down    表示目前server已停用

backup 表示目前server是備用伺服器,隻有其它非backup後端伺服器都挂掉了或者很忙才會配置設定到請求。

max_fails和fail_timeout一般會關聯使用,如果某台server在fail_timeout時間内出現了max_fails次連接配接失敗,那麼Nginx會認為其已經挂掉了,進而在fail_timeout時間内不再去請求它,fail_timeout預設是10s,max_fails預設是1,即預設情況是隻要發生錯誤就認為伺服器挂掉了,如果将max_fails設定為0,則表示取消這項檢查。

      本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/1896426,如需轉載請自行聯系原作者

繼續閱讀