标签: http-status-code-504

Nginx反向代理导致504网关超时

我使用Nginx作为反向代理,接受请求,然后执行proxy_pass从端口8001上运行的上游服务器获取实际的Web应用程序.

如果我去mywebsite.com或做一个wget,我会在60秒后获得504网关超时...但是,如果我加载mywebsite.com:8001,应用程序会按预期加载!

因此有些事情阻止了Nginx与上游服务器的通信.

所有这一切都是在我的托管公司重置机器运行之后开始的,之前没有任何问题.

这是我的vhosts服务器块:

server {
    listen   80;
    server_name mywebsite.com;

    root /home/user/public_html/mywebsite.com/public;

    access_log /home/user/public_html/mywebsite.com/log/access.log upstreamlog;
    error_log /home/user/public_html/mywebsite.com/log/error.log;

    location / {
        proxy_pass http://xxx.xxx.xxx.xxx:8001;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
} 
Run Code Online (Sandbox Code Playgroud)

我的Nginx错误日志输出:

2014/06/27 13:10:58 [error] 31406#0: *1 upstream timed out (110: Connection timed out) while connecting to upstream, client: xxx.xx.xxx.xxx, server: mywebsite.com, request: "GET / HTTP/1.1", upstream: "http://xxx.xxx.xxx.xxx:8001/", host: "mywebsite.com"
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx proxypass http-status-code-504

103
推荐指数
6
解决办法
16万
查看次数

WCF - (504)服务器未返回此请求的响应

我有一个JSONP WCF端点,我试图找出为什么我得到504错误.

HTTP/1.1 504 Fiddler - 接收失败
内容类型:text/html
连接:close
时间戳:11:45:45:9580
ReadResponse()失败:服务器未返回此请求的响应.

我可以在我的Endpoint内部的任何地方设置一个断点,逐步执行代码,看到它成功收集响应所需的数据,点击最后一行代码,然后一旦我退出WCF调用,我就得到504错误. 这是在上周工作!

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceContract(Name = "NegotiateService", Namespace = "http://rivworks.com/Services/2009/01/15")]
public class NegotiateService //: svcContracts.INegotiateService
{
    public NegotiateService() { }

    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    public dataObjects.NegotiateSetup GetSetup(string method, string jsonInput)
    {
        dataObjects.NegotiateSetup resultSet = new dataObjects.NegotiateSetup();

        using (RivFeedsEntities1 _dbFeed = new FeedStoreReadOnly(AppSettings.FeedAutosEntities_connString, "", "").ReadOnlyEntities())
        {
            using (RivEntities _dbRiv = new RivWorksStore(AppSettings.RivWorkEntities_connString, "", "").NegotiationEntities())
            {
                // Deserialize the input and get all the data we need...
                Newtonsoft.Json.Linq.JObject o = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net wcf http-status-code-504

22
推荐指数
3
解决办法
4万
查看次数

504网关超时服务器未及时响应.怎么解决?

客户端请求下载压缩日志文件,使用Ext.js在嵌入式表单上提交表单iframe.请求被发送到服务器,其中包含ApacheJBoss 6.该servlet的压缩日志文件,做一些数据库操作,并返回压缩文件.

正好在2分钟后,504网关超时服务器没有及时响应消息在浏览器网络面板上显示.如何解决这个错误?

apache jboss servlets extjs http-status-code-504

20
推荐指数
1
解决办法
8万
查看次数

Git错误:请求的URL返回错误:504访问http://时的网关超时

我正在使用由我公司的内部云(KVM) - RHEL 6.4配置的VM.

我能够从互联网克隆外部存储库.然而,我无法弄清楚如何在我公司的内部网上克隆内部存储库.

起初我没有设置http_proxyhttps_proxy收到此错误:

error: The requested URL returned error: 401 Authorization Required while accessing http://....
Run Code Online (Sandbox Code Playgroud)

设置完成后http_proxyhttps_proxy,我现在正在等待约60秒后收到此错误:

error: The requested URL returned error: 504 Gateway Timeout while accessing http://...
Run Code Online (Sandbox Code Playgroud)

我可以从我的笔记本电脑克隆这个repo find,而不是VM

关于我应该在哪里看的任何想法?

谢谢.

git http-status-code-504

16
推荐指数
2
解决办法
4万
查看次数

504网关超时 - 两个带负载均衡器的EC2实例

这可能是不可能的问题.我已经尝试了一切.我觉得在某个地方的交换机上有一个人,旋转着他的胡子.

问题:

我有Amazon EC2运行应用程序.当只有一个实例且没有负载均衡器时,它可以正常运行.

但是在我的生产环境中,我有两个相同的实例在一个负载均衡器后面运行,在执行某些任务时,比如生成PDF并将其附加到电子邮件的功能,根本不会发生任何事情,以及在网络中使用Google Developer工具时选项卡一旦超时命中(我将其设置为30秒),我会收到错误"504 Gateway Timeout".

我的数据库是外部的,在Amazon RDS上.

我想....如果我可以强制客户端保持连接到他们登录的初始服务器,这个问题就会解决,因为我的理解是当实例1尝试联系到时,504网关超时正在发生instance-2执行任务.

只有在使用负载平衡时才会发生这种情况,但是直接连接到我的两台服务器之一时就不会发生这种情况.

负载均衡器设置:

  • 负载均衡器在我的注册器上有一个CRECORD,以便app.myapplication.com指向myloadbalancerDNSname.elb.amazonaws.com
  • 负载均衡器有2个健康实例,每个实例位于同一区域,但它们位于不同的可用区域中.
  • 负载均衡器使用与实例相同的安全组(允许端口22,80和443上的所有IP)
  • 负载平衡器已打开跨区域负载平衡.
  • CORS(在Amazon S3中)启用从*到*的GET,POST,PUT,DELETE(我不知道这与我的实例有什么关联,但无论如何我按照说明说的那样做了)
  • 负载均衡器具有如下配置的侦听器:
    • 负载均衡器协议:HTTP负载均衡器端口:80实例协议:HTTP实例端口:80
    • 负载均衡器协议:HTTPS负载均衡器端口:443实例协议:HTTP实例端口:80(根据我的证书提供商正确选择密码,SSL字段100%肯定正确)

更多想法:

话虽这么说,我不是用HTTPS测试,而是用普通的HTTP测试.即使我的证书提供商表示,我也不相信SSL已正确设置.我怀疑的原因是当我尝试键入https://app.myapplication.com时,我在Google Developer Tools的Network选项卡中收到错误"(failed)net :: ERR_CONNECTION_CLOSED".但这应该是不适用的,因为即使使用常规HTTP我也遇到了问题.我可以稍后对SSL进行故障排除.

重申一下,我的问题是在使用某些功能时遇到"504 Gateway Timeout"问题,但偶尔也会随机而不是加载页面(但很少).只有在使用负载平衡时才会出现这个问题,但是直接连接到我的两个实例之一时就不会发生这种问题.

我不知道要问哪个问题,因为我已经跟踪了每个文件到T,双重和三重检查了网络上的所有建议而没有.

load-balancing amazon-ec2 http-status-code-504

16
推荐指数
3
解决办法
3万
查看次数

HTTP 408和504错误有什么区别?

这些都是超时错误,但是谁在408和504中超时?

根据w3,408被定义为:

客户端在服务器准备等待的时间内未产生请求。客户端可以在以后的任何时间重复请求而无需修改。

... 504是:

该服务器在充当网关或代理服务器时,未收到由URI指定的上游服务器(例如HTTP,FTP,LDAP)或尝试完成访问所需访问的其他一些辅助服务器的及时响应。请求。

那么,如果不是中间服务器,408中的“客户端”是谁?如果是实际的最终用户,那么服务器如何知道在发出请求之前要等待他们的请求?

timeout http http-status-code-504 http-status-code-408

11
推荐指数
1
解决办法
6978
查看次数

如何修复504网关超时错误?

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

http-status-code-504

11
推荐指数
2
解决办法
2万
查看次数

调试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 [错误] 1070#0:* 196333149在连接上游时,上游超时(110:连接超时),客户端:66.249.74.95,服务器:xxxx,请求:“ GET / Some / url HTTP / 1.1”,上游:“ fastcgi://127.0.0.1:9000”,主机:“ example.com”

早期的fastcgi_connect_timeout为150秒-过去63秒,它通常在RHEL 6.6上使用net.ipv4.tcp_syn_retries = 5时给出502状态代码;之后,我们设置net.ipv4.tcp_syn_retries = 6,然后在127秒后开始提供502。

一旦我将fastcgi_connect_timeout设置为120,它就会开始提供504状态代码。我知道具有如此高的值的fastcgi_connect_timeout不好。

需要找出为什么我们确切地得到504(我知道它超时,但是原因未知)。需要找到根本原因永久修复它。

我如何确认问题出在哪里?

这是一些已经定义的超时:

在服务器范围的nginx.conf下:

  • keepalive_timeout 5;
  • send_timeout 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 = …

php linux nginx connection-timeout http-status-code-504

9
推荐指数
1
解决办法
3063
查看次数

nginx 504网关超时

我在nginx上运行带有phusion-passenger的rails3.0.7项目.我正在做ajax,花了大约15分钟来处理.它用firebug跳出一个错误,在拨打ajax 10分钟后说"504 Gateway Time-out".

能不能让我知道如何找到问题.

谢谢,本

环境

  • 操作系统:mac osx 10.6.7
  • ruby:1.9.2p180与rvm一起安装
  • 宝石:1.6.2
  • 乘客3.0.7
  • rails:3.0.7
  • mysql:5.5.10用brew安装
  • nginx:1.0.0独立安装passender

ruby-on-rails passenger nginx http-status-code-504

8
推荐指数
2
解决办法
3万
查看次数

504 Gateway超时媒体模板

当我的php脚本需要运行超过60秒时,我经常遇到504个网关错误.

我在专用服务器上的媒体寺庙.我已经联系了媒体寺,他们一直很有帮助,但他们没有任何建议似乎对我有用,我被告知要编辑这个文件.

/etc/httpd/conf.d/fcgid.conf

我必须在下面

LoadModule fcgid_module modules/mod_fcgid.so

<IfModule mod_fcgid.c>

<IfModule !mod_fastcgi.c>
    AddHandler fcgid-script fcg fcgi fpl
</IfModule>

  FcgidIPCDir /var/run/mod_fcgid/sock
  FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm
  FcgidIdleTimeout 300
  FcgidMaxRequestLen 1073741824
  FcgidProcessLifeTime 10000
  FcgidMaxProcesses 64
  FcgidMaxProcessesPerClass 15
  FcgidMinProcessesPerClass 0
  FcgidConnectTimeout 600
  FcgidIOTimeout 600
  FcgidInitialEnv RAILS_ENV production
  FcgidIdleScanInterval 600

</IfModule>
Run Code Online (Sandbox Code Playgroud)

所以我尽可能多地尝试最大化,测试这个我只是运行下面的功能.

function test504(){
        @set_time_limit(0);
        sleep(60);
        echo "true";
    }
Run Code Online (Sandbox Code Playgroud)

睡眠将在60秒以下的任何值上工作,返回true但在60上我得到504网关错误.

我的phpinfo(); 输出

max_execution_time 600
max_input_time 180
Run Code Online (Sandbox Code Playgroud)

我已经看到一些关于增加这个fastcgi_connect_timeout的帖子,但不知道在媒体寺庙哪里可以找到它.

有谁可以帮助谢谢

更新仍然无法修复此问题

在与支持人员聊天后,我被告知需要编辑nginx.conf?并被定向到这篇文章http://blog.secaserver.com/2011/10/nginx-gateway-time-out/

不能罚款托管上的任何值.client_header_timeout client_body_timeout send_timeout fastcgi_read_timeout

我的nginx.conf文件看起来像这样

#error_log  /var/log/nginx/error.log  info;

#pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http { …
Run Code Online (Sandbox Code Playgroud)

php timeout mediatemple http-status-code-504

8
推荐指数
1
解决办法
6639
查看次数