nginx+tomcat實現反向代理+負載均衡

神諭丶發表於2015-02-09

實驗環境:

CentOS 6.5 單伺服器
tomcat 7.0.57 *3
nginx 1.6.2 *1


說明:

tomcat 1 :處理正常電商業務的請求
tomcat 2 :處理奪寶業務請求
tomcat 3 :處理奪寶業務請求

將tomcat 1、2、3分別分配4個埠:
透過修改conf/server.xml,並透過/搜尋port可以很快找到四個埠的配置點,其中<!-- --&gt為註釋資訊。

tomcat 1為預設:
https:8443
http:8080
shutdown:8015
ajp:8019

tomcat 2為:
https:11112
http:11111
shutdown:11113
ajp:11114

tomcat 3為:
https:21112
http:21111
shutdown:21113
ajp:21114



透過反向代理不僅可以一定程度上保證安全,也可以實現動靜分離。
負載均衡也可緩解單點伺服器的壓力,保證其他業務安全,提高響應速度。

透過簡單配置nginx.conf可以實現反向代理+負載均衡。


我的配置如下:

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
    
    #此處為“weight”方式,其他方式包括輪詢、ip_hash等。
    upstream web {        #定義web集合,此處可以自定義名稱
        server 127.0.0.1:11111 weight=1;    #這將給予21111埠對應的tomcat伺服器更多的壓力,由於是單伺服器,故透過埠來實現對不同tomcat的識別。
        server 127.0.0.1:21111 weight=2;
    }

    server {
        listen       80;
        server_name  localhost;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        location /{
                  if ( $request_uri ~ /[^AAAAA/|BBBBB/](.+) ){
                set $p $1;
                rewrite $p break;
            }
            proxy_pass
        }

        location /MyWebSite/{
            proxy_pass     #將請求轉發給tomcat的8080埠
        }

        location /AAAAA/ {
            proxy_pass    #AAAAA頁面
        }
        
        location /BBBBB/ {
            proxy_pass    #BBBBB頁面
        }   

        location /MyWebSite/treasure{    #將網站的tresure頁面交給上面配置的web集合
            proxy_pass
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

 server {
        listen       443 ssl;    
        server_name  localhost;

        ssl_certificate      /home/dev/ssl/ssl.crt;
        ssl_certificate_key  /home/dev/ssl/ssl_nopass.key;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        location / {
            proxy_pass
        }
        location /faxsun/{
                proxy_pass
        }
    }





其他nginx配置可以見http://blog.itpub.net/29773961/viewspace-1389042/



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1431640/,如需轉載,請註明出處,否則將追究法律責任。

相關文章