如果有两台机器负载
upstream myCluster { server 127.0.0.1:80 ; server 158.37.70.143:80 ; }
表示这个server cluster包含2台服务器
〉然后在server模块中定义,负载均衡:
location ~ .php$ { proxy_pass http://myCluster ; #这里的名字和上面的cluster的名字相同 proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
这样的话,如果访问http://localhost:8080/test.php 页面的话,nginx目录下根本没有该文件,但是它会自动将其pass到myCluster定义的服务区机群中,分别由127.0.0.1:80;或者158.37.70.143:80;来做处理。
上面在定义upstream的时候每个server之后没有定义权重,表示两者均衡;如果希望某个更多响应的话例
upstream myCluster { server 127.0.0.1:80 weight=5; server 158.37.70.143:80 ; }
这样表示5/6的几率访问第一个server,1/6访问第二个。另外还可以定义max_fails和fail_timeout等参数。