542179528 发表于 2016-12-25 12:40:01

nginx+tomcat 504 Gateway Time-out异常

  应用是nginx+tomcat
  根据这个错误,是因为tomcat没有及时回应nginx,导致错误.
  先使用 fiddler 将页面的请求抓出来.
  找到504的请求.然后查找原因.
  因为这个请求时间比较长,只有90秒.
  所以修改
  proxy_connect_timeout   90;
  proxy_send_timeout      90;
  proxy_read_timeout      90;
  修改成
  proxy_connect_timeout   18000; ##修改成半个小时
  proxy_send_timeout      18000;
  proxy_read_timeout      18000;
  附上,nginx配置文件实例

#userwww www;   
worker_processes 8;
error_log/usr/local/nginx/logs/nginx_error.logcrit;
pid      /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
#工作模式及连接数上限
events
{
use epoll;
worker_connections 65535;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http
{   
#设定mime类型   
include       mime.types;   
default_typeapplication/octet-stream;   
#charsetutf-8;
#设定请求缓冲      
server_names_hash_bucket_size 128;   
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
sendfile on;
tcp_nopush   on;   
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
client_body_buffer_size 512k;
proxy_connect_timeout   5;
proxy_send_timeout      60;
proxy_read_timeout      5;
proxy_buffer_size       16k;
proxy_buffers         4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#fastcgi_connect_timeout 300;
#fastcgi_send_timeout 300;
#fastcgi_read_timeout 300;
#fastcgi_buffer_size 64k;
#fastcgi_buffers 4 64k;
#fastcgi_busy_buffers_size 128k;
#fastcgi_temp_file_write_size 128k;   
gzip on;
gzip_min_length1k;
gzip_buffers   4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zonecrawler$binary_remote_addr10m;

server
{   
listen       80;   
server_namelocalhost;   
index index.html index.htm index.jsp index.do;#设定访问的默认首页地址   
root/www/web;#设定网站的资源存放路径      
#limit_conn   crawler20;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
#所有jsp的页面均交由tomcat处理
location ~ \.(jsp|jspx|do|jhtml)?$ {
proxy_set_headerHost $host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_pass http://127.0.0.1:8080;#转向tomcat处理      
}            
location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ #设定访问静态文件直接读取不经过tomcat   
{      
expires      30d;   
}      
location ~ .*\.(js|css)?$   
{      
expires      1h;   
}      
#定义访问日志的写入格式      
log_formatwwwlog'$remote_addr - $remote_user [$time_local] "$request" '            
'$status $body_bytes_sent "$http_referer" '            
'"$http_user_agent" $http_x_forwarded_for';   
access_log/data/logs/www_nginx.log wwwlog;#设定访问日志的存放路径
}
}
页: [1]
查看完整版本: nginx+tomcat 504 Gateway Time-out异常