Upstream Connection Time Out Error in Nginx
Currently at Industrial Logic we use Nginx as a reverse proxy to our Tomcat web server cluster.
Today, while running a particular report with large dataset, we started getting timeouts errors. When we looked at the Nginx error.log, we found the following error:
[error] 26649#0: *9155803 upstream timed out (110: Connection timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: elearning.industriallogic.com, request: "GET our_url HTTP/1.1", upstream: "internal_server_url", host: "elearning.industriallogic.com", referrer: "requested_url" |
After digging around for a while, I discovered that our web server is taking more than 60 secs to respond. Nginx has a directive called proxy_read_timeout which defaults to 60 secs. It determines how long nginx will wait to get the response to a request.
In nginx.conf file, setting proxy_read_timeout to 120 secs solved our problem.
server { listen 80; server_name elearning.industriallogic.com; server_name_in_redirect off; port_in_redirect off; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-Host $host; proxy_read_timeout 120; ... } ... } |