If a method other than the default one is used, the corresponding directive (least_conn,ip_hash or hash) should be specified inside the upstream before the server directives.如果你要使用其他的调度算法(默认使用的round-robin),相应的指令必须在upstream内部指定,并且要在server指令之前。
比如:最小数链接/ip_hash/hash $request_uri consistent;(如果是使用轮询的方式的话,就不用写了,因为默认算法就是轮询)
upstream loadbance {
least_conn; //或者是ip_hash和(hash $request_uri consistent)
server 192.168.10.156 weight=3; //可以设置权值的哦
server 192.168.10.157;(如果其其他端口,后面请加端口号:X.X.X.X:8888)
}
哎呀,我擦,这就扯远了。其实,nginx还有一个健康检查的功能,如果有台服务器挂了,请求不会分发到该服务器上。比如下面的写法:
upstream loadbance {
server 192.168.10.156 weight=3;
server 192.168.10.157;
server 192.168.10.158 backup;//当备机使用
server 192.168.10.155 down; //如果你要临时移除一台服务器进行升级或者其他操作,可以把其标记为down的状态,这样请求就不会到其上。
}
其实,我们还可以通过server内部的location指令来指定不同的路径分发到不同的服务器上去。来实现分流。
比如,可以定义多个upstream。upstream1,upstream2.......然后
location /mp3 {
proxy_pass ;
}
location /flv {
proxy_pass ;
}
等等等等。location后面的路径你可以使用精确路径,通配符,正则表达式扥等。OK,到此为止。要不然就刹不住了,东西太多了。
--------------------------------------分割线 --------------------------------------
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块
CentOS 6.4安装配置Nginx+Pcre+php-fpm
--------------------------------------分割线 --------------------------------------