tomcat与nginx相结合,nginx基于端口配置多个tomcat的问题?
2015-05-19 19:51
239 查看
这一个月内,nginx与tomcat结合部署,始终有一个问题困惑着我!我在论坛上也发布过该问题,但始终没有具体答案,不过到现在我又发现一个问题,所以再将这个问题,发布出来,然后大家讨论,先说下公司服务情况:公司服务硬件情况是:
服务器:HP 刀片
内存:32GB
CPU:32核
服务器软件情况:
系统:红旗Asianux SP3 x86_64系统
JAVA环境:jrockit-1.6_24-x86_64
应用:共发布6个tomcat,端口号分别为,2080、2081、2082、8080、8888、8081等,每个tomcat部署多个java应用,tomcat独立运行
数据库:mongodb数据库,第三方服务等
服务器资源使用情况:
内存:剩余12-20G
CPU:0.0%us 4.3%sy 87.0%id ........
负载:1.50 1.89 0.82
随着公司业务的增多,服务tomcat也增加了一个,使用一段时间后,java总是crashing,不管是停止tomcat,还是启动tomcat,报不能提交4G到heap里,我找了多个方法,但发现如果tomcat启动了,再启动其他的应用时,就报内存溢出,比如启动mongodb数据库时,就因为内存溢出启不起来,但是剩余的内存很大啊,始终搞不懂,好,这个问题先放一边,当然,如果哪位大牛,知道怎么解决,还请多指教!!!
于是我想用tomcat与nginx结合,降低tomcat内存使用量,但在这里也遇到了一个问题,并有两点发现,因为楼主没有用过nginx,因此感觉相当棘手。
现在我将问题贴出来,希望大家给个建议:
server
{
listen 8080;
server_name 10.0.0.199;
index QSConsole.html index.html index.jsp default.jsp;
root /opt/tomcat_8080/webapps; ////我tomcat写的是8080,但server.xml里配置的是9088
charset utf-8;
access_log /opt/tomcat_8080/logs/catalina.out;
location ~ .*\.(jsp|jspx|do|action)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass
http://10.0.0.199:9088;
}
location ~ .*\.(htm|ico|txt|css|gif|jpg|jpeg|png|bmp|swf|html)$
{
root /opt/tomcat_8080/webapps;
expires 30d;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
}
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
expires 3d;
proxy_pass
http://10.0.0.199:9088;
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 ~ .*\.(js|css)?$
{
expires 1h;
}
location ~(favicon.ico)
{
log_not_found off;
expires 30d;
break;
}
}
我若这样配置的话,访问http://ip:8080/QuadServer的时候,报如下错误:
报2014/01/20 10:47:07 [error] 28813#0: *1 open() "/opt/tomcat_8080/webapps/favicon.ico" failed (2: No such file or directory), client: 10.0.0.17, server: 10.0.0.199:9088, request: "GET /favicon.ico HTTP/1.1",
host: "10.0.0.199:8080"
但是我若将配置改成如下:
server
{
listen 80;
server_name 10.0.0.199:8080;
index QSConsole.html index.html index.jsp default.jsp;
root /opt/tomcat_8080/webapps;
charset utf-8;
access_log /opt/tomcat_8080/logs/catalina.out;
#location ~ ^/QuadServer/*
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
expires 3d;
proxy_pass http://10.0.0.199:8080;
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 ~(favicon.ico)
{
log_not_found off;
expires 30d;
break;
}
}
}
或者改成如下也可以,如:
server
{
listen 8080;
server_name 10.0.0.199:80;
index QSConsole.html index.html index.jsp default.jsp;
root /opt/tomcat_8080/webapps;
charset utf-8;
access_log /opt/tomcat_8080/logs/catalina.out;
#location ~ ^/QuadServer/*
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
expires 3d;
proxy_pass http://10.0.0.199:80;
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 ~(favicon.ico)
{
log_not_found off;
expires 30d;
break;
}
}
}
若是这两种配置的话,那么访问http://ip/QuadServer或者http://ip:8080/QuadServer那么服务都可以正常访问,所以,我就郁闷了,不知道该怎样配置nginx基于端口来发布服务器上的多个tomcat???大家讨论讨论
服务器:HP 刀片
内存:32GB
CPU:32核
服务器软件情况:
系统:红旗Asianux SP3 x86_64系统
JAVA环境:jrockit-1.6_24-x86_64
应用:共发布6个tomcat,端口号分别为,2080、2081、2082、8080、8888、8081等,每个tomcat部署多个java应用,tomcat独立运行
数据库:mongodb数据库,第三方服务等
服务器资源使用情况:
内存:剩余12-20G
CPU:0.0%us 4.3%sy 87.0%id ........
负载:1.50 1.89 0.82
随着公司业务的增多,服务tomcat也增加了一个,使用一段时间后,java总是crashing,不管是停止tomcat,还是启动tomcat,报不能提交4G到heap里,我找了多个方法,但发现如果tomcat启动了,再启动其他的应用时,就报内存溢出,比如启动mongodb数据库时,就因为内存溢出启不起来,但是剩余的内存很大啊,始终搞不懂,好,这个问题先放一边,当然,如果哪位大牛,知道怎么解决,还请多指教!!!
于是我想用tomcat与nginx结合,降低tomcat内存使用量,但在这里也遇到了一个问题,并有两点发现,因为楼主没有用过nginx,因此感觉相当棘手。
现在我将问题贴出来,希望大家给个建议:
server
{
listen 8080;
server_name 10.0.0.199;
index QSConsole.html index.html index.jsp default.jsp;
root /opt/tomcat_8080/webapps; ////我tomcat写的是8080,但server.xml里配置的是9088
charset utf-8;
access_log /opt/tomcat_8080/logs/catalina.out;
location ~ .*\.(jsp|jspx|do|action)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass
http://10.0.0.199:9088;
}
location ~ .*\.(htm|ico|txt|css|gif|jpg|jpeg|png|bmp|swf|html)$
{
root /opt/tomcat_8080/webapps;
expires 30d;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
}
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
expires 3d;
proxy_pass
http://10.0.0.199:9088;
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 ~ .*\.(js|css)?$
{
expires 1h;
}
location ~(favicon.ico)
{
log_not_found off;
expires 30d;
break;
}
}
我若这样配置的话,访问http://ip:8080/QuadServer的时候,报如下错误:
报2014/01/20 10:47:07 [error] 28813#0: *1 open() "/opt/tomcat_8080/webapps/favicon.ico" failed (2: No such file or directory), client: 10.0.0.17, server: 10.0.0.199:9088, request: "GET /favicon.ico HTTP/1.1",
host: "10.0.0.199:8080"
但是我若将配置改成如下:
server
{
listen 80;
server_name 10.0.0.199:8080;
index QSConsole.html index.html index.jsp default.jsp;
root /opt/tomcat_8080/webapps;
charset utf-8;
access_log /opt/tomcat_8080/logs/catalina.out;
#location ~ ^/QuadServer/*
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
expires 3d;
proxy_pass http://10.0.0.199:8080;
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 ~(favicon.ico)
{
log_not_found off;
expires 30d;
break;
}
}
}
或者改成如下也可以,如:
server
{
listen 8080;
server_name 10.0.0.199:80;
index QSConsole.html index.html index.jsp default.jsp;
root /opt/tomcat_8080/webapps;
charset utf-8;
access_log /opt/tomcat_8080/logs/catalina.out;
#location ~ ^/QuadServer/*
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
expires 3d;
proxy_pass http://10.0.0.199:80;
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 ~(favicon.ico)
{
log_not_found off;
expires 30d;
break;
}
}
}
若是这两种配置的话,那么访问http://ip/QuadServer或者http://ip:8080/QuadServer那么服务都可以正常访问,所以,我就郁闷了,不知道该怎样配置nginx基于端口来发布服务器上的多个tomcat???大家讨论讨论
相关文章推荐
- NGINX和TOMCAT配置动静分离端口丢失问题
- NGINX和TOMCAT配置动静分离端口丢失问题
- eclipse中配置tomcat服务器和端口被占用问题的解决
- Nginx+tomcat配置https后出现400 Bad Request问题
- Nginx配置端口转发 映射 以及连接超时问题
- Tomcat捕获Nginx反向代理协议IP及端口配置
- Nginx配置Https访问,tomcat无法正确获取schema的问题
- HaProxy+Nginx+Tomcat获取真实ip的配置问题
- 配置nginx虚拟机时端口开放问题
- Tomcat+Nginx配置以及Tomcat宕机后的问题
- Tomcat 基于端口的虚拟主机配置
- Linux配置Tomcat 80 端口失败的问题记录
- Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理
- nginx配置转发后,jsp页面用request.getserverPort获取端口为80的问题
- Linux实战第八篇:CentOS7.3下Nginx虚拟主机配置实战(基于端口)
- Tomcat下基于HTTPS协议应用的负载均衡配置问题
- 配置了APACHE和TOMCAT整合后,firefox中的window.parent.document不能用(http_proxy的端口问题)
- 关于Tomcat配置基于端口号虚拟主机时Engine元素的问题
- 解决Linux下ArcGIS Server的Tomcat不稳定问题,nginx配置反向代理时的一个小问题
- LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)