504 gateway timeout。以下是两种解决思路
- 优化业务代码
一个接口调用超过一分钟,一定有可以优化的地方,看看数据库或者接口的调用是否合理,是否可以合并请求。 - 修改Nginx的服务器配置
如果实在是优化不了了,可以把Nginx的超时时间上调。
看看时间是否符合要求,在nginx.config里面的三个参数:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
以上的单位是秒。
如果使用了Nginx的代理,可以在块里加上:
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
变成:
location /foo {
proxy_pass http://xxx.xxx.xxx.xxx:8080/foo;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
access_log /var/log/nginx/access.foo.log main;
error_log /var/log/nginx/error.foo.log;
}