问题标签 [http-status-code-504]
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.
apache - Apache 和 mod_wsgi 在发布特定 SVG 字符串时返回 504 错误
当我发布特定的 SVG 字符串时,Apache + mod_wsgi 中出现了一个奇怪的 504 错误。后端应用程序是 Python Flask,但它似乎根本无法访问应用程序。
这是一个返回 504 错误的请求:
这是另一个返回 200 的函数:
不同之处在于我只从 POST 数据中删除了一个字符
SVG 数据被缩减为可能产生错误的最小数据。原始的 SVG 字符串要大得多。
apache错误日志中出现的错误是:
有趣的是,在我发出请求之后,在发布数据上传完成之前,错误日志中就会出现错误。
以下是我们拥有的版本号:
任何线索可能导致这种情况?
更新:我们将 mod_wsgi 更新为 4.4.12,并且错误消息在 error.log 中发生了更改
这可能与 Web 服务器前面的 AWS 负载均衡器有关。将尝试对此进行调查。 http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html#ts-elb-errorcodes-http504
amazon-web-services - 为什么 AWS ELB(弹性负载均衡器)有时会立即返回 504(网关超时)?
ELB 偶尔会立即(不到 1 秒)向我们的客户返回 504。问题是,它完全是随机的,当我们立即重复请求时,它会正常工作。
有人对此有同样的问题或任何想法吗?
java - Java Restlet 出现 503/504 错误,停止运行
我有一个Java程序设置为每秒向服务器发出请求,使用Restlet,但每周在同一时间,他们在我运行程序的几个小时内进行大约一分钟的维护。
结果,我收到了几个 504 错误,然后是一个 503 错误,然后由于某种原因我的程序停止运行。它只是在 503 错误之后不会继续。它说:
检测到可恢复的错误 (503),在 2000 毫秒内再次尝试
但它不会再次尝试。由于我已将其设置为每秒继续请求服务器(一旦遇到“可恢复错误”就会停止请求),我想知道是否有办法让程序忽略 504 和 503 错误和就像什么都没发生一样继续。
nginx - Nginx 未找到,但服务器显示“504 Gateway Time-out”(WHM/cpanel)
服务器使用WHM/Cpanel,当长时间执行php脚本时,服务器显示“504 Gateway Time-out”。
但是我在服务器上找不到任何 nginx 文件...尝试过:
查找 / -name nginx.conf
哪里是 nginx
ps -lA | awk '$12 == "?" {打印 $4, $14}'
nginx -V
操作系统:CentOS
使用 cloudflare 的网站
http - Azure:无法浏览到 URL
蔚蓝一直表现得很奇怪。以前,一切都很好,直到我的云服务更新花费了通常的 20 分钟以上。然后我决定删除并重新部署,但不保留以前的证书。
所以我重新打包并重新部署;但是这次我无法通过通常的http://youraddrhere.cloudapp.net连接到网络应用程序。每次我这样做时,Chrome 都会失望地告诉我:ERR_CONNECTION_TIMED_OUT。当我远程进入云服务并从 IIS(即其内部 IP)中打开应用程序时,它奇迹般地工作了!但是,如果我无法将我的云服务公开为公共站点,那就没有用了……
快速检查事件查看器中的错误会显示以下内容:
A fatal error occurred when attempting to access the SSL server credential private key. The error code returned from the cryptographic module is 0x8009030d. The internal error state is 10001.
我尝试删除、创建、上传、删除、重新创建和重新上传大量 .cer 和 .pfx 文件,但无济于事。
这次我做错了什么?
php - 需要解释:PHP5-FPM 的 TIME_WAIT 保持打开 60 秒
前几天我遇到了一个问题,我的 nginx Web 服务器停止处理 php 脚本并给出 504 Gateway Timeout。我在端口 9000 上设置了 php5-fpm。
当我运行时,netstat | grep 9000
我得到了以下结果,数百次使用不同的端口号
他们似乎根本没有清理干净。我怀疑我的服务器可能有很多流量,或者某个地方的脚本不好。我从服务器关闭了一堆低优先级站点(我有大约 10 个不同的 nginx 站点配置文件正在运行)并且事情再次出现,但是对于 php 页面的每个请求,netstat 报告其中 9000->37XXX 端口中的 1 个打开并且即使页面几乎立即返回到客户端,它也会保持打开 60 秒。
它保持打开 60 秒有什么原因吗?和/或为什么不重用连接?我有什么配置不正确吗?
我担心如果我的一个站点再次获得大量流量,它会再次占用所有连接,我会再次看到 504 网关超时,如果实际上这只是一个负载问题而不是一个糟糕的 php 脚本。
python - Plotly & Python - 504 网关超时
我编写了一个小程序,用于分析工作中来自设备的大型数据集,并使用 Plotly 绘制数据图表。直到最近它运行良好,但是在过去一周中,它在绘制数据图表时一直出现 504 Gateway Timeout 服务器错误。代码中没有任何变化,尽管我尝试改变它的图形部分。我尝试重新安装 python/anaconda,以及安装和更新 plotly python 库。我已经使用三个不同的帐户重新初始化了 plotly 的 API 凭据,但均未成功。到目前为止,尽管做出了所有努力,但错误仍然存在,尽管我可以在使用 python 控制台时绘制图表。
对此的任何帮助都会非常有用。如有必要,我可以发布部分代码。以下是控制台输出的错误。
文件“NKDA_2.1.py”,第 51 行,在 thisPulseCount, thisArcCount, thisMaxCurrent = FH.processFile(procedureID, currentProcedure, resultsFolder) 文件“C:\Users\cellison\Documents\Data Analysis\fileHandling.py”,第 97 行,在 processFile unique_url = py.plot(fig, filename=graphName) File "C:\Users\cellison\AppData\Local\Continuum\Anaconda\lib\site-packages\plotly\plotly\plotly.py",第 262 行,在情节 res = _send_to_plotly(figure, **plot_options) 文件“C:\Users\cellison\AppData\Local\Continuum\Anaconda\lib\site-packages\plotly\plotly\plotly.py”,第 1421 行,在 _send_to_plotly r .raise_for_status() 文件“C:\Users\cellison\AppData\Local\Continuum\Anaconda\lib\site-packages\requests\models.py”,第 851 行,在 raise_for_status 中引发 HTTPError(http_error_msg, response=self) 请求。exceptions.HTTPError:504 服务器错误:GATEWAY_TIMEOUT
wordpress - Wordpress 未在新的专用服务器下运行
我刚刚将我安装的 WordPress 从共享主机(工作得很好)移到了专用服务器,我不断收到“500 Internal Server Error”错误。我尝试删除.htaccess,重命名插件文件夹,增加内存,但没有任何效果。我还应该尝试什么?
我注意到的一件事是,当我将 PHP 支持从“FastCGI 5.4.45”更改为“Apache 5.4.45”时,我收到“504 Gateway Time-out”错误。
java - Camel HTTPS4 调用失败,但 CamelHttpResponseCode 标头显示 200
我正在使用使用 https4 组件(camel 版本 2.14.0)通过 HTTP 请求资源的路由。死信通道通过将失败的交换路由到日志端点来处理错误,如下所示:
在网关超时 (504) 的情况下,将HttpOperationFailedException
引发错误并按预期记录交换。自从我设置showAll=true
了,所有的交换头都被记录了,包括CamelHttpResponseCode
. 日志如下所示:
标题不应该在CamelHttpResponseCode
这里说 504 吗?
php - 调试504网关超时及其实际原因及解决方法
我们在 RHEL 6.6 上的 Web 服务器 Varnish + Nginx + FastCGI (php-fpm) 上运行以下堆栈
它是一个动态网站,每次都有不同的结果集,并且有大约 200 万个 URL 被 Google 索引。
- 它在 nginx/1.5.12 和 PHP 5.3.3 上运行(即将升级到最新的 nginx 和 PHP)
- Nginx 连接到在端口 9000 上同一台服务器上本地运行的 php-fpm
我们在一些我们无法解决的页面上间歇性地收到 504 网关超时。一段时间后,给出 504 的 URL 可以正常工作。我们从日志中了解了 504,但我们无法复制它,因为它随机发生在任何 URL 上并且在一段时间后会起作用。
我已经与开发人员进行了几次讨论,但根据他的说法,底层的 php 脚本几乎没有任何作用,它不应该花费这么长时间(120 秒),但它仍然给出 504 网关超时。
需要确定问题发生的确切位置:
- 是 Nginx 的问题吗?
- php-fpm 有问题吗?
- 底层php脚本有问题吗?
- nginx 是否有可能无法连接到 php-fpm ?
- 如果我们使用 Unix 套接字而不是 TCP/IP 连接,它会解决吗?
URL 在 120 秒后超时,出现 504
以下是看到的错误: 2016/01/04 17:29:20 [error] 1070#0: *196333149 upstream timed out (110: Connection timed out) while connection to upstream, client: 66.249.74.95, server: xxxx,请求:“GET /Some/url HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“example.com”
较早的 fastcgi_connect_timeout 为 150 秒 - 在 RHEL 6.6 上默认 net.ipv4.tcp_syn_retries = 5 时,它在 63 秒后给出 502 状态码;之后我们设置 net.ipv4.tcp_syn_retries = 6 然后它在 127 秒后开始给出 502。
一旦我设置了 fastcgi_connect_timeout = 120 它就开始给出 504 状态码。我了解如此高的值的 fastcgi_connect_timeout 并不好。
需要找出为什么我们会得到 504(我知道它的超时,但原因未知)。需要找到根本原因才能永久修复它。
我如何确认问题到底出在哪里?
以下是一些已经定义的超时:
在服务器范围的 nginx.conf 下:
- keepalive_timeout 5;
- 发送超时 150;
在特定的 vhost.conf 下:
- proxy_send_timeout 100
- proxy_read_timeout 100
- proxy_connect_timeout 100
- fastcgi_connect_timeout 120
- fastcgi_send_timeout 300
- fastcgi_read_timeout 300
使用了不同的超时值,因此我可以找出确切触发了哪个超时。
以下是 sysctl.conf 中的一些设置:
- net.ipv4.ip_local_port_range = 1024 65500
- net.ipv4.tcp_fin_timeout = 10
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_syn_retries = 6
- net.core.netdev_max_backlog = 8192
- net.ipv4.tcp_max_tw_buckets = 2000000
- net.core.somaxconn = 4096
- net.ipv4.tcp_no_metrics_save = 1
- vm.max_map_count = 256000
如果它的代码写得不好,那么我需要通知开发人员 504 是由于 php 代码中的问题而不是由于 nginx 或 php-fpm 而发生的,如果它是由于 Nginx 或 Php-fpm 导致的,那么需要修复它。
提前致谢!
======
进一步更新:
有2种情况:
- 504 @ 120 秒出现以下错误:
2016/01/05 03:50:54 [错误] 1070#0: *201650845 连接到上游时上游超时(110:连接超时),客户端:66.249.74.99,服务器:xxxx,请求:“GET /some /url HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“example.com”
- 504 @ 300 秒出现以下错误:
2016/01/05 00:51:43 [错误] 1067#0: *200656359 从上游读取响应标头时上游超时(110:连接超时),客户端:115.112.161.9,服务器:192.168.12.101,请求: “GET /some/url HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“example.com”
- 在 php-fpm 日志中未发现错误。
php-fpm 进程数也正常。后端看起来并没有超载,因为其他请求同时得到了很好的服务。
只使用了一个 php-fpm 池。一个 php-fpm 主(父)进程和其他从(子)进程通常只有在观察到 5xx 时才处于正常范围。php-fpm 进程的数量没有显着增长,即使增长,服务器也有足够的容量来分叉新进程并服务请求。