当前位置: > Linux服务器 > Tomcat >

Nginx配置路径转发至Tomcat

时间:2015-01-13 22:53来源:linux.it.net.cn 作者:it.net.cn

在公司领了几台台式机来做测试服务器,但是这么多台比较难管理,于是把几台PC换成了一台,增加了一些硬件资源,将各种测试环境整合起来,通过Nginx的路径转发来控制请求路径。
Nginx的转发规则如下(片段,tomcat6、tomcat7、tomcat8分别在本机的不同端口):

    location ^~ /tomcat/6/ {
        proxy_pass   http://127.0.0.1:8686/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location ^~ /tomcat/7/ {
        proxy_pass   http://127.0.0.1:8787/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location ^~ /tomcat/8/ {
        proxy_pass   http://127.0.0.1:8888/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

这样,通过访问http://xxx.xxx.xxx.xxx/tomcat/6/ 就可以直接转发到127.0.0.1的8686端口了,方便做测试。
另外^~ /tomcat/6/代表匹配URL以/tomcat/6/开头,需要计算大小写。

语法规则: location [=|~|~|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 开头表示区分大小写的正则匹配
~
 开头表示不区分大小写的正则匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。

对于Openfire或者Oracle,则需要用以下的代码片段来进行配置:

worker_processes  1;
events {
    worker_connections  1024;
}
tcp {
        upstream openfire {
                server 192.168.0.1:5222;
                server 192.168.0.2:5222;
                check interval=3000 rise=2 fall=5 timeout=1000;
        }
        server {
                listen 5222;
                proxy_pass openfire;
        }
}
 


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容