Nginx配置路径转发至Tomcat
时间:2015-02-22 19:23 来源:linux.it.net.cn 作者:IT
在公司领了几台台式机来做测试服务器,但是这么多台比较难管理,于是把几台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)
在公司领了几台台式机来做测试服务器,但是这么多台比较难管理,于是把几台PC换成了一台,增加了一些硬件资源,将各种测试环境整合起来,通过Nginx的路径转发来控制请求路径。
这样,通过访问http://xxx.xxx.xxx.xxx/tomcat/6/ 就可以直接转发到127.0.0.1的8686端口了,方便做测试。
对于Openfire或者Oracle,则需要用以下的代码片段来进行配置:
(责任编辑:IT) |