Increasing 504 timeout error

111,337

Solution 1

Depending on the kind of gateway you have you should use something like:

proxy_read_timeout 600s;

Check docs: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout

Solution 2

If it is a fastcgi timeout error, then you need to increase the fastcgi_read_timeout.

# /etc/nginx/conf.d/example.com.conf
server {

    location ~ \.(php)$ {
        fastcgi_pass unix:/var/run/php74-example.com.sock;
        fastcgi_read_timeout 300s;

error log) upstream timed out

# tail -f example.com.error.log
2020/12/29 14:51:42 [error] 30922#30922: 
*9494 upstream timed out (110: Connection timed out) while reading response header from upstream,
...
upstream: "fastcgi://unix:/var/run/php74-example.com.sock",
...

nginx manual)

Default: fastcgi_read_timeout 60s;
Context: http, server, location

http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_read_timeout


Result of calling a script that runs for longer then 60 seconds in Chrome DevTools.

default 60s

enter image description here

fastcgi_read_timeout 300s

enter image description here

Share:
111,337
Matthew Jones
Author by

Matthew Jones

Updated on July 05, 2022

Comments

  • Matthew Jones
    Matthew Jones almost 2 years

    Is there any way I can make the error 504 gateway timeout longer if so how and where is the file to change it located. I am using nginx on centos 6

    • fungusanthrax
      fungusanthrax almost 3 years
      In my case, I was using nginx with a load balancer, so I had to update the haproxy config to increase the server timeout timeout server 3000s
  • Jakob Runge
    Jakob Runge over 8 years
    I found that scalescale.com/tips/nginx/504-gateway-time-out-using-nginx has some additional timeout settings mentioned. That could also be helpful in this regard.
  • kworr
    kworr over 8 years
    Well I tried to answer the question first. Other options mentioned there are not about nginx or not about fixing error 504 (except *_connect_timeout porbably... but that's rather about network connection issues).
  • Jakob Runge
    Jakob Runge over 8 years
    Yes, I'm aware of that and I also found your answer helpful a good deal to me. Just thought that the additional info might help others as well .)
  • David Lin
    David Lin over 6 years
    do you need to put 's' to the time ? proxy_read_timeout 60s;
  • kworr
    kworr over 6 years
    @DavidLin, you are right, though seconds are default, measurement units should be added per nginx.org/en/docs/syntax.html
  • DavidR
    DavidR almost 6 years
    Make sure to create a new file and add it to /nginx/conf.d/ folder rather than editing /nginx/nginx.conf folder directly. This is better for portability and to easily see and edit past changes.