【问题标题】:What can I do to fix a 504 gateway timeout error?如何修复 504 网关超时错误?
【发布时间】:2017-05-07 14:01:01
【问题描述】:

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

【问题讨论】:

    标签: http-status-code-504


    【解决方案1】:

    我最近在我的一个应用程序中遇到了这个问题,该应用程序正在对其 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 秒)。

    希望这会有所帮助!

    【讨论】:

    • 给定的链接不起作用。但是您提供的设置正在运行。
    • 谢谢 Sid,我删除了链接,我认为没有必要:)
    【解决方案2】:

    无能为力。

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

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

    您无法防止此类错误。你可以做的是找出当这样的问题发生时应该有什么样的用户体验,并实施它。顺便提一句。如果您收到 504 错误,那么您还应该预料到超时错误。假设您向服务器发出 60 秒超时的请求,而您的服务器向代理发出 60 秒超时的请求。因为两个超时时间相同,有时您的服务器会收到代理超时并将其发送给您(状态 504),但有时您对服务器的请求会在此之前超时,并且您会收到超时错误。

    【讨论】:

    • 关于这个问题,请问您如何“修复代理”?
    【解决方案3】:

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

    火狐浏览器可以用,其他不知道。

    按照以下步骤操作: 1. 进入偏好(右上角3行,下拉搜索)

    1. 搜索代理(Ctrl+F)

    2. 进入设置

    3. 在“配置代理访问 Internet”下方的选择按钮中选择“NO PROXY”

    4. 刷新网页。

    【讨论】:

      猜你喜欢
      • 2023-02-22
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多