nginx如何做php网站的负载均衡

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; #这里是重点!
    }

    Leave a Reply