centos下nginx負載平衡

來源:互聯網
上載者:User

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;        }}


 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.