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配置文件实例

#user  www www;   
worker_processes 8; 
error_log  /usr/local/nginx/logs/nginx_error.log  crit; 
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_type  application/octet-stream;     
  #charset  utf-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_length  1k; 
  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_zone  crawler  $binary_remote_addr  10m;
 
 

  server
   {     
 listen       80;    
 server_name  localhost;    
 index index.html index.htm index.jsp index.do;#设定访问的默认首页地址     
 root  /www/web;#设定网站的资源存放路径      
 #limit_conn   crawler  20;  
 if (-d $request_filename)
  {
   rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  }
  #所有jsp的页面均交由tomcat处理
  location ~ \.(jsp|jspx|do|jhtml)?$ {
   proxy_set_header  Host $host;  
  proxy_set_header  X-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_format  wwwlog  '$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;#设定访问日志的存放路径  
   } 
}

 

你可能感兴趣的:(tomcat)