我在我的网站上使用 linkedin 登录。一切正常,直到上周,它开始返回“504 网关超时”错误。我没有更改 linkedin 开发人员网站上的应用程序设置或应用程序代码中的任何内容。奇怪的是,它在本地主机上仍然可以正常工作,但在生产中它会返回上述错误。我的问题是:
是不是Linkedin方面更有可能出现问题?因为对我来说,我的网站似乎正在尝试连接 linkedin API,但它从未得到响应。
不幸的是,我没有找到任何可以就这个问题联系的地址。有 Linkedin 支持吗?或者你们中有人遇到过类似的问题吗?
谢谢
authentication request-timed-out http-status-code-504 oauth-2.0 linkedin-api
更新2:请参阅下面我的回答。504错误已修复
cache-control更新:尽管存在错误,但这似乎不是由于标头造成的。如果我禁用服务工作线程,标头仍然存在。相反,这是由于504 (Gateway Timeout)API 上的 Service Worker 造成的。知道如何解决这个问题吗?
我已经构建了一个完整的 MEAN-stack 应用程序,并且在我使用 Service Worker 之前它工作得很好。
我得到的主要错误是
Failed to load ${apiUrl} Request header field Cache-Control is not allowed by Access-Control-Allow-Headers in preflight response.
我在尝试访问外部 API (api.article.io) 时收到此消息,我无法控制其 CORS 设置。
我尝试ngsw-config.json通过将 API url 添加到 来调整我的dataGroups,但到目前为止,这只增加了一个额外的错误:
Uncaught (in promise) TypeError: Failed to fetch ngsw-worker.js
仅当尝试使用以下方式获取事件流时才会发生这种情况:
watchStatus(url: string): Observable<eventResponse> {
return new Observable<eventResponse>(obs => {
const source = new EventSource(url);
source.addEventListener('status', (event) => {
obs.next(JSON.parse(event.data).data);
});
return () …Run Code Online (Sandbox Code Playgroud) http-status-code-504 server-sent-events preflight service-worker angular
在继续之前,我需要检查用户是否已连接到互联网。
我正在使用 HttpClient 访问端点,如下所示:
client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
req.SetBasicAuth(username, password)
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
ui.Failed("Check your internet connection")
}
Run Code Online (Sandbox Code Playgroud)
1) 在这种情况下,如果用户未连接到互联网,我需要向用户显示明确的消息,显示“请检查您的互联网连接”
2) 如果服务器没有响应,收到504 bad gateway,显示“504 Bad gateway”
有人可以帮助如何继续和区分这两种情况吗,我只想显示简单的消息,而不是从服务器收到的整个错误消息。
我正在开发一个有角度的 PWA 应用程序。所以我添加了一个 npm 包ng add @angular/pwa。它添加成功,没有错误。
生成的清单工作正常。但我正面临服务工作者的问题。当应用程序上线时,它会存储所有缓存(请参阅附件),但每当应用程序下线时,它会显示错误 - HTTP ERROR 504,而不是服务于来自 Service Worker 的请求
这是我的ngsw-config.json -
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": ["assets/images/favicon.ico", "/index.html", "/*.css", "/*.js"]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将是可观的......
google-chrome http-status-code-504 angular angular-service-worker angular-pwa
我编写了一个用于数据库导入的脚本,它在数据库上创建了一些作业.当我使用这个脚本时,几分钟后我得到"504 Gateway Timeout Error".
我增加了php.ini上的所有超时值,也增加了执行时间,但它仍然相同.
我在 nginx+apache 下运行这个脚本。它将大数据包(分成几部分)发送到远程服务器,循环调用 cURL 执行。对我来说奇怪的是,超时后我在浏览器(队长)中收到 504 错误,但脚本仍然继续运行!
我已经测试过它 - 脚本正在发送我需要它发送的所有数据,所以从技术上讲,这不是问题。但我认为任何像这样的不寻常的事情都可能在未来产生后果。
我希望更有经验的开发人员能够分享有关此问题的任何知识。
如果服务器花费超过 60 秒,则获取 504 网关超时响应,服务器上的进程继续运行并完成其执行,但在客户端得到响应 504 网关超时 60 秒,因此怀疑 apache 没有等待 PHP 完成其执行并发送网关超时响应。
阅读无法增加 apache 2.4.6 超时的地方,这是该特定版本的已知错误,因此无法通过增加 apache 的超时来尝试。我的网站正在通过 https 运行,并且任何请求超过从 php 端处理 60 秒,得到响应网关超时 504。
注意:没有代理和负载均衡器,服务器设置在 Amazon EC2 上并运行(LAMP-Linux centos 7、Apache 2.4.6、MySQL 5.7、PHP 5.6)
php ×3
angular ×2
angular-pwa ×1
apache ×1
bad-gateway ×1
go ×1
http ×1
linkedin-api ×1
oauth-2.0 ×1
preflight ×1
timeout ×1