Nginx reverse proxy causing 504 Gateway Timeout Nginx reverse proxy causing 504 Gateway Timeout nginx nginx

Nginx reverse proxy causing 504 Gateway Timeout


Probably can add a few more line to increase the timeout period to upstream. The examples below sets the timeout to 300 seconds :

proxy_connect_timeout       300;proxy_send_timeout          300;proxy_read_timeout          300;send_timeout                300;


Increasing the timeout will not likely solve your issue since, as you say, the actual target web server is responding just fine.

I had this same issue and I found it had to do with not using a keep-alive on the connection. I can't actually answer why this is but, in clearing the connection header I solved this issue and the request was proxied just fine:

server {    location / {        proxy_set_header   X-Real-IP $remote_addr;        proxy_set_header   Host      $http_host;        proxy_http_version 1.1;        proxy_set_header Connection "";        proxy_pass http://localhost:5000;    }}

Have a look at this posts which explains it in more detail:nginx close upstream connection after requestKeep-alive header clarificationhttp://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive


user2540984, as well as many others have pointed out that you can try increasing your timeout settings. I myself faced a similar issue to this one and tried to change my timeout settings in the /etc/nginx/nginx.conf file, as almost everyone in these threads suggest. This, however, did not help me a single bit; there was no apparent change in NGINX' timeout settings. After many hours of searching, I finally managed to solve my issue.

The solution lies in this forum thread, and what it says is that you should put your timeout settings in /etc/nginx/conf.d/timeout.conf (and if this file doesn't exist, you should create it). I used the same settings as suggested in the thread:

proxy_connect_timeout 600;proxy_send_timeout 600;proxy_read_timeout 600;send_timeout 600;

This might not be the solution to your particular problem, but if anyone else notices that the timeout changes in /etc/nginx/nginx.conf don't do anything, I hope this answer helps!