web网站负载均衡是解决大流量网站的办法。我开始摸索着如何实现nginx下的php站点的负载均衡。
最低要求3台主机。其中一台做前端,两台做后端。所有请求都是通过前端,然后前端根据后端服务器的负载情况进行请求的分发,最后再通过前端返回数据给访问者。
前端要做的就是反向代理(具体这个含义,说实话,我一直没理解太透彻。。)。主要有两步:一是设置后端的所有服务器地址。二是设置前端所截断、获取的请求要转向的后端组,其实也就是第一步中的设置值。
- 在nginx.conf中设置所有后端服务器,同时起一个名字。通常设置为backend。pustream应该放在http域块中。
upstream backend {
#ip_hash;#请求分发方式
server backend1.ss.com weight=5;server backend2.ss.com weight=2;
server backend3.ss.com weight=1;
}
- 在server域块中,添加我们要截断的请求,进行转发给backend组。在这里我们设置为截断所有请请求。
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存# proxy_buffering off;
#设置反向代理的地址
proxy_pass http://backend; #这里是重点!
}