我的环境是Windows 7 32位,Nginx为1.7.3,Tomcat的版本是7.0.57
配置文件部分如下(不贴全部的,就改了下面的)
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream localhost_tomcat {
server localhost:808<span style="background-color:;"></span>0;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ \.jsp$ {
proxy_pass http://localhost_tomcat;
proxy_connect_timeout 2s;
}
location ~ \.(html|js|css|png|jpg|gif)$ {
root html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置后是可以访问到Nginx后面的Tomcat的,但是在某次刷新(不定,比较多的情况是在请求页面后第二次刷新)时出现长时间的等待(60秒左右)然后才有响应。Nginx的错误日志中有一段是这样的:
都是出现了Timeout,但我不知道具体是卡在了Nginx上还是Tomcat上面,现在的暂时办法是在配置proxy_pass的时候加上一段:proxy_connect_timeout 2s;
强制Nginx在负载的时候2秒超时
现在我想问的是为什么会出现这样的情况,是卡在了哪里(Nginx还是Tomcat或者其他的?),切实的解决办法是什么,为什么能解决?我查到的资料多是英文的,无奈英文水平处于小学以下,而且很多情况跟我的不太一样,还有很多资料是关于Nginx和PHP cgi或者fastcgi的,原谅我对于php-cgi和fastcgi的运行机制不熟,也不知道这些资料对我有没有借鉴意义,如果有幸让哪位大神提到这些运行机制我愿意洗耳恭听。好了,字码太多怕待会你们看不下去都跑了,就写到这,漏了再补充吧。先谢过了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。