Cat*_*gan 11 http-status-code-504
我一直在使用jquery尝试从API中提取数据.但是我收到504错误.即使我使用邮递员来测试数据,也会发生这种情况.任何人都可以建议我需要做些什么才能解决这个问题?
All*_*ney 13
我最近在我的一个应用程序上遇到了这个问题,该应用程序正在对其 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;
Run Code Online (Sandbox Code Playgroud)
运行sudo nginx -t以检查语法,然后sudo service nginx restart.
这应该有效地将 NGINX 超时您的 API 请求之前的时间增加四倍(默认为 60 秒,我们的新超时为 240 秒)。
希望这可以帮助!
没有什么你可以做.
您正在向服务器发送请求.此特定请求失败,因为服务器向代理发送请求,并获得超时错误.您的服务器将此状态报告给您,状态为504.
解决问题的唯一方法是修复代理(使其及时响应),或者将服务器更改为不依赖于该代理.两者都在您的区域之外.
你无法阻止这样的错误.您可以做的是找出发生此类问题时应该具有的用户体验,并实施它.BTW.如果你得到504错误,那么你也应该期待超时错误.假设您在60秒超时的情况下向服务器发出请求,并且您的服务器向代理发出60秒超时请求.由于两个超时都相同,有时您的服务器将收到代理超时并将其发送给您(状态504),但有时您对服务器的请求将在此之前超时,并且您会收到超时错误.