天天看点

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,如需转载请自行联系原作者

继续阅读