centos下nginx负载均衡

192.168.55.115为主服务器

192.168.55.185为从服务器


先需要将发送到服务器端的请求进行分流,具体要求如下


要求/index.php/*的请求访问主服务器

/api.php/1/files/*的请求访问主服务器

/api.php/1/files_put/*的请求访问主服务器

/api.php/1/thumbnails/*的请求访问主服务器

/statics/thumbnails/*的请求访问主服务器


其它的都访问从服务器



主服务器192.168.55.115的server配置

upstream follower  {
      server 192.168.55.185:80 max_fails=5 fail_timeout=360s;
}

server {
        listen       80;
        server_name  192.168.55.115;
        index index.html index.htm index.php;
        root /www/web/sign_name;
        client_max_body_size 10240m;

        location ~ ^/index\.php\w*|/api\.php/\d+/(\bfiles\b|\bfiles_put\b|\bthumbnails\b)/\w* {
                set $script $uri;
                set $path_info "";

                if ($uri ~ "^(.+.php)(/.+)") {
                        set $script $1;
                        set $path_info $2;
                }

                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /www/web/sign_name$fastcgi_script_name;
                include        fastcgi_params;
                fastcgi_param  SCRIPT_NAME $script;
                fastcgi_param  PATH_INFO $path_info;
        }

        location ~ ^/statics/thumbnails/\w* {

        }


        location / {
                proxy_pass  http://follower;
                proxy_set_header Host $http_host;
                proxy_next_upstream     error timeout invalid_header http_500;
                proxy_connect_timeout   360s;

                #rewrite ^(.*?)api.php/(.*)$ $1api.php?$2;
                #rewrite ^(.*?)index.php/(.*)$ $1index.php?$2;
        }
}


其中

                set $script $uri;
                set $path_info "";

                if ($uri ~ "^(.+.php)(/.+)") {
                        set $script $1;
                        set $path_info $2;
                }
的设置是为了配置php的$_Server[''path_info"]获取了全路径的问题, 具体请参考 这里



从服务器192.168.55.185的server配置

server {
        listen       80;
        server_name  192.168.55.185;
        index index.html index.htm index.php;
        root /www/web/sign_name;
        client_max_body_size 10240m;

        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /www/web/sign_name$fastcgi_script_name;
                include        fastcgi_params;
        }

        location / {
                rewrite ^(.*?)api.php/(.*)$ $1api.php?$2;
                rewrite ^(.*?)index.php/(.*)$ $1index.php?$2;
        }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值