如何修复504网关超时错误?

时间:2017-05-07 14:01:01

标签: http-status-code-504

我一直在使用jquery来尝试从API中提取数据。但是我收到504错误。即使我使用邮递员来测试数据,也会发生这种情况。任何人都可以建议我需要做些什么才能解决这个问题?

3 个答案:

答案 0 :(得分:5)

你无法做到。

您正在向服务器发送请求。此特定请求失败,因为服务器向代理发送请求,并获得超时错误。您的服务器将此状态报告给您状态为504.

修复它的唯一方法是修复代理(使其及时响应),或者将服务器更改为不依赖于该代理。两者都在您的区域之外。

您无法阻止此类错误。您可以做的是找出发生此类问题时应该具有的用户体验,并实施它。 BTW。如果你得到504错误,那么你也应该期待超时错误。假设您在60秒超时的情况下向服务器发出请求,并且您的服务器向代理发出60秒超时请求。由于两个超时都相同,有时您的服务器将收到代理超时并将其发送给您(状态504),但有时您对服务器的请求将在此之前超时,并且您会收到超时错误。

答案 1 :(得分:0)

我最近在自己的一个应用中遇到了这个问题,该应用正在对其Firebase数据库进行雄心勃勃的调用-它捕获了一个非常大的记录,而该记录花费了60秒(默认超时)来检索。

对于遇到此错误并可以访问其应用程序/网站托管环境(通过 NGINX 进行代理)的用户,可以通过延长API请求的超时来解决此问题。

在您的/etc/nginx/sites-available/default/etc/nginx/nginx.conf中添加以下变量:

proxy_connect_timeout       240;
proxy_send_timeout          240;
proxy_read_timeout          240;
send_timeout                240;

运行sudo nginx -t来检查语法,然后运行sudo service nginx restart

这应该有效地使NGINX使您的API请求超时的时间增加四倍(默认值为60秒,我们的新超时为240秒)。

更多内容:How to Fix 504 Gateway Timeout using Nginx

希望这会有所帮助!

答案 2 :(得分:-1)

解决此问题的一种方法是,在浏览器中将代理设置更改为“无代理”

它可以在Firefox浏览器中运行,其他我不知道。

请按照以下步骤操作: 1.转到首选项(右上角3行,在下拉菜单中搜索)

  1. 搜索代理(Ctrl + F)

  2. 进入设置

  3. 在“ 配置对Internet的代理访问权限

  4. 下的选择按钮中选择“否代理”
  5. 刷新网页。