问题标签 [http-status-code-502]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - nginx proxy_next_upstream 工作很奇怪
nginx 的 proxy_next_upstream 工作很奇怪。
当上游到其他国家/地区的代理无法返回请求时,我想传递到下一个服务器。所以我像这样设置上游(代理到其他国家)。
它运作良好。但是连接tomcat的上游也会在失败时重试。
上游tomcat配置
我认为只有当上游有两个以上的服务器时,nginx 才会尝试下一个上游。
但即使上游有一台服务器,它也会尝试两次以上。
我使用 nginx、tomcat 和 java spring。
有我的nginx的配置、访问日志和错误日志。
代理配置
日志格式
访问日志
错误日志
如您所见,我将 proxy_next_upstream_tries 设置为 2。但它重试了两次以上。(访问日志:{502、502、502、502} -> 这意味着上游尝试第四次代理到下一个服务器)
我对此有疑问。
- 我希望上游 tomcat 不会重试通过下一个服务器。可能吗?
- 为什么上游只有一台服务器时会重试?
- 为什么它重试两次以上?
- 当upstream返回502时,为什么暂时无法连接?(发生时,服务器状态正常)
如果您知道我的问题之一的答案,请告诉我。
谢谢你。
python - 读取超时 Firebase
我目前有一个处理推送通知的遗留项目,其订阅者群在 Firebase 中,因为订阅使用 gcloud 平台中的功能是以下技术。
节点:“10”firebase-admin“:”^ 8.9.2“,firebase-functions”:“^ 3.3.0”
创建通知时,会生成一个 .json 文件,该文件将发送到不同的 vps,与将通知分派给 base 的订阅者相同。
然而,从本月 11 日开始,它开始抛出随机 502 错误,这是以前没有发生过的。发送 502 的函数是下一个:
没有对实施进行任何更改。在 CMS(CMS 在 python 3.6 中)方面,我在日志中收到以下错误:
触发它的代码行如下:
它如何增加响应时间以及可能导致它的原因是什么?谢谢。
google-cloud-platform - 谷歌云负载均衡器导致错误 502 - failed_to_pick_backend
当我使用带有 CDN 的谷歌云平衡器时出现错误 502,问题是,我很确定我在设置负载平衡器时做错了什么,因为当我删除负载平衡器时,我的网站运行得很好。
这就是我 在这里配置负载均衡器的方式
- 我应该使用 HTTP 还是 HTTPS 健康检查,因为当我设置 HTTPS 健康检查时,我的网站运行了一段时间,然后又关闭了
- 我已经检查了这个链接,他们似乎有同样的问题,但它对我不起作用。
- 我已按照 openlitespeed 论坛的教程在服务器管理面板中设置 Keep-Alive Timeout (secs) = 60s 并配置实例以接受长期连接,但仍然不适合我。
- 我在这个谷歌云链接之后添加了这两个防火墙规则,以允许谷歌健康检查 ip,但仍然没有工作: https ://cloud.google.com/load-balancing/docs/health-checks#fw-netlb https: //cloud.google.com/load-balancing/docs/https/ext-http-lb-simple#firewall
检查负载均衡器日志消息时,它会显示一条错误消息 failed_to_pick_backend 。我试图重新配置负载均衡器,但没有帮助。
我刚开始学习谷歌云,我的知识真的很有限,如果有人能一步一步地告诉我如何解决这个问题,将不胜感激。谢谢!
xml - 在 Vercel 中制作 XMLHttpRequest
我正在尝试使用 Vercel 来查询其他 API。我能够让 Vercel 服务器接收查询并返回适当的值。我还可以毫无问题地从另一个 js 文件生成 XMLHttpRequest。当我尝试将 XMLHTTPRequest 插入我的 Vercel 服务器时,问题就出现了。
每当我现在尝试访问服务器时,都会收到 502 bad gateway 错误。我相信错误是在当前 Vercel 服务器中发出另一个 HTTP 请求。我不确定如何做到这一点。
任何提示将非常感谢!
c# - NuGet 私有服务器在推送新包时返回 502 (Bad Gateway)
我部署了新的私有 NuGet 服务器(NuGet.Server.3.4.1)并在 web.config 中设置了 API 密钥。
然后我从我的 .net 核心类库项目中创建了第一个 nuget 包。
但是当我尝试运行以下命令时
dotnet nuget push packageName.1.0.0.nupkg --api-key myKey --source https://privateNugetServer.com/nuget
我从服务器收到错误
错误:响应状态码不表示成功:502(网关错误)。
当我使用 Nuget 服务器本身手动上传包时,我尝试了解决方法,但是当我将其他包源添加到指向我的服务器的 Visual Studio nuget 管理器时,我仍然收到此错误。
错误:响应状态码不表示成功:502(网关错误)。
可能是什么问题?
amazon-web-services - 如何最好地管理 AWS 中的 Cloudfront/Nginx 502 Bad Gateway 错误
我们有一个通过 CloudFront 提供服务的网站。本周某个时候,源 EC2 (ECS) 服务器崩溃了,并在短时间内开始返回 502 错误:
502 错误网关 | Nginx
这个问题很快得到解决,但我们有几个用户仍然在他们的浏览器中看到错误。他们都在使用 Google Chrome,而且问题似乎一直存在(就像浏览器/CloudFront 已经缓存了错误)。一位用户通过进入隐身模式解决了该问题,另一位用户每次点击我们新闻通讯中的链接时都会看到该问题。其他一些用户仅通过使用不同的浏览器解决了该问题。
我不确定如何开始调试。另外,我想如果接收到 502 错误,它不会缓存页面内容。此外,我无法从我的最终复制。
要向问题添加额外信息:
我不是在寻找有关如何停止或管理 502 错误网关错误的建议。我们知道为什么这些会发生(ed)这个问题纯粹是在将缓存的 502 错误交付给用户后修复它们的建议。
从目前的反馈来看,我们可以在 10 秒后在 CloudFront 中取消缓存 502 错误。这已启用,但问题仍然存在。
我在这里的感觉是用户的浏览器已经缓存了 503 错误页面并且没有从服务器请求更新。在不让他们清除缓存的情况下,有没有办法将 CloudFront 或他们的浏览器设置为仅在短时间内缓存 502 错误,然后再从服务器请求更新页面?
另外,又想了想。错误是'502 Bad Gateway | Nginx' 这甚至来自 CloudFront 吗?我的服务器可以发送带有 502 错误的长 Cache-Control 标头吗?
amazon-web-services - 增加 AWS Elastic Beanstalk 实例大小或增加负载均衡器是否有助于减少随机 502 Nginx 错误?
我最近在我的 Elastic Beanstalk 应用程序中添加了一个 CPU 密集型 20MB+ 图像解码/解析函数,并注意到有时(大约 10% 的时间)调用函数本身或随后对应用程序的不相关请求会导致502
错误,来自 Nginx,而不是应用程序本身:
我的 Elastic Beanstalk 实例是一个t2.small
正在运行的Docker running on 64bit Amazon Linux 2/3.2.0
操作系统,我的负载均衡器如下所示:
切换到更大的实例大小或增加负载均衡器的进程是否有助于减轻502
我看到的错误?
angular - Docker 用 Angular 502 Bad Gateway 组合
我正在使用 docker compose 将我的应用程序放在服务器上。我有三个容器,angular、spring 和 https-portal。我的码头工人撰写文件:
以及 Angular 服务的 docker 文件
当我尝试访问www.bloomingthebrand.com时,服务器返回 502 Gateway Error ngix
Angular 应用程序在端口 4200 中启动
python - 防止忽略非 200 响应状态 - Scrapy
我正在抓取一个网站,我想在获得响应状态 50x 时重试请求,但我得到了
忽略非 200 响应
我怎样才能摆脱它并重试请求几次(例如默认为 3 次)或重试直到获得 200 响应状态。
更新:
我的自定义重试中间件是:
它应该像内置一样工作,RetryMiddleware
但它没有,我RETRY_TIMES = 4
在我的设置中设置但蜘蛛502
在失败 1 次后忽略状态。要重现此问题,此链接始终返回 502 状态代码。我通过以下方式启用了我的自定义中间件:
docker - Cloud Run/Gunicorn 在一分钟后给出 502 错误
我正在使用 Gunicorn 的 Google Cloud Run 中部署一个 python 应用程序。我的 gunicorn 和 cloud run 超时都设置为 900 秒,这也是 Cloud Run 的超时。奇怪的是,当我调用该函数时,如果应用程序运行时间超过 60 秒,我会从 Cloud Run 收到 502 错误,如果运行时间少于 60 秒,则不会。例如,下面的部署函数抛出了这个错误:
但是,如果我将睡眠时间更改为 40 秒:
没有502错误。起初我以为问题是由 nginx 引起的,它有 60 秒的默认超时时间,但似乎 nginx 不是默认使用 docker 或 cloud run 部署的,所以这似乎不是问题的原因。我的 Dockerfile 如下:
我axios
在前端调用云运行,据我了解,它没有超时,所以我不认为这应该是一个问题。任何帮助表示赞赏,谢谢!
编辑:这是 chrome 控制台中错误消息的图像 - 但似乎不是很有帮助: