标签: timeout

如何禁用nginx的超时?

在本地开发机器上,我有一个 nginx 反向代理,如下所示:

server {
  listen 80;
  server_name myvirtualhost1.local;
  location / {
    proxy_pass http://127.0.0.1:8080;
}

server {
  listen 80;
  server_name myvirtualhost2.local;
  location / {
    proxy_pass http://127.0.0.1:9090;
}
Run Code Online (Sandbox Code Playgroud)

然而,如果我调试我的应用程序,响应可能会延迟无限长的时间,但在 30 秒后我得到:

504 Gateway Time-out

作为回应。

如何禁用超时并使我的反向代理永远等待响应?而且我喜欢全局设置,这样我就不必为每个代理设置它。

configuration nginx timeout

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

如何使用 ping 命令设置短超时?

我正在尝试编写一个脚本,列出 LAN 上的所有主机(大约有 20 个)并在每个主机旁边写入 ping 状态。我有 DHCP 租约文件,所以我有所有的 IP(比如 10.0.0.1、10.0.0.2 等),我需要的只是每个主机的 ping 状态。

因此,我的脚本为每个主机启动一个 ping:

ping -c 1 10.0.0.1
Run Code Online (Sandbox Code Playgroud)

不幸的是,当主机离线时,ping 需要很长时间才能超时。我查了一下man ping,似乎有两个选项可以设置超时延迟:-w deadline-W timeout。我想我对后者感兴趣。

所以我试过这个:

ping -c 1 -W 1 10.0.0.1
Run Code Online (Sandbox Code Playgroud)

但是每个离线主机等待一秒钟仍然太长。我试图将其设置为低于一秒,但它似乎根本没有考虑该参数:

ping -c 1 -W 0.1 10.0.0.1  # timeout option is ignored, apparently
Run Code Online (Sandbox Code Playgroud)

有没有办法将超时设置为较低的值?如果没有,是否有其他选择?

编辑

  • 操作系统是 Debian Lenny。
  • 我试图 ping 的主机实际上是接入点。它们与用户位于相同的 vlan 和子网中(为了简化部署和替换)。这就是为什么我不想扫描所有子网(ping -b例如)。

编辑 #2

我接受了fping解决方案(感谢所有其他答案)。这个命令完全符合我的要求:

fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Run Code Online (Sandbox Code Playgroud)

此命令最多需要 500 毫秒才能完成,并一次为我提供所有主机的 ping …

timeout ping

64
推荐指数
7
解决办法
23万
查看次数

Nginx + php-fpm“504 Gateway Time-out”错误几乎为零负载(在测试服务器上)

调试 6 小时后 - 我放弃了:|

我们在 LAN 中有一个 nginx+php-fpm+mysql,有近 100 个 wordpress(由不同的设计人员/开发人员创建和使用,他们都在测试 wordpres 设置)

我们长期使用 nginx 没有任何问题。

今天,突然间——nginx开始突然返回“504网关超时”......

我检查了虚拟主机的 nginx 错误日志...

2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: …
Run Code Online (Sandbox Code Playgroud)

nginx timeout gateway fastcgi php-fpm

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

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

Nginx proxy_read_timeout 与 proxy_connect_timeout

我已经开始使用 Nginx 作为一组提供某种服务的服务器的反向代理。

该服务有时可能相当慢(它在 Java 上运行,而 JVM 有时会陷入“完全垃圾收集”,这可能需要几秒钟),所以我将 设置proxy_connect_timeout为 2 秒,这将使 Nginx 有足够的时间来计算出服务卡在 GC 上并且不会及时响应,它应该将请求传递到不同的服务器。

proxy_read_timeout如果服务本身需要太多时间来计算响应,我还设置了防止反向代理卡住 - 同样,它应该将请求移动到另一个应该足够空闲以返回及时响应的服务器。

我已经运行了一些基准测试,我可以清楚地看到,proxy_connect_timeout由于某些请求完全在为连接超时指定的时间返回,因此工作正常,因为服务卡住并且不接受传入连接(该服务使用 Jetty 作为嵌入式servlet 容器)。这proxy_read_timeout也有效,因为我可以看到在那里指定的超时后返回的请求。

问题是proxy_read_timeout + proxy_connect_timeout,如果服务被卡住并且在 Nginx 尝试访问它时不接受连接,但在 Nginx 可以超时之前 - 它被释放并开始处理,但速度太慢,Nginx 会因为读取超时而中止。我相信该服务有这样的情况,但是在运行了几个基准测试之后,总共有数百万个请求 - 我没有看到一个请求在上面的任何内容中返回proxy_read_timeout(这是更大的超时)。

我很感激对此问题的任何评论,尽管我认为这可能是由于 Nginx 中的错误(我还没有查看代码,所以这只是一个假设)连接后超时计数器不会重置如果 Nginx 没有从上游服务器读取任何内容,则成功。

nginx proxy timeout

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

nginx 连接超时和客户端关闭连接问题

我在 AWS 上运行了这台 nginx 服务器,直到最近,当几个用户开始抱怨该网站在尝试访问 10 次后才打开,它一直运行良好。

我从来没有能够从我身边重现这个问题。我正在使用 google 的 dns,即 8.8.8.8,当我为其中一个用户更改相同的 dns 时,该站点运行良好。现在这可能是原因,也可能只是巧合。

我在错误日志中发现了这个 -

2014/05/29 13:46:15 [info] 6940#0: *150649 client timed out (110: Connection timed out) while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150670 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150653 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150652 client closed connection while waiting for request, …
Run Code Online (Sandbox Code Playgroud)

nginx timeout keepalive

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

http 工作时 https 超时

我已经为我的域设置了 SSL,它从 Apache 的角度工作。

问题是通过 HTTPS 访问我的域有时会导致超时。当它不起作用时,通过 HTTP 访问我的网站需要一些时间,但它永远不会超时。

为什么 HTTPS 会发生这种情况,有没有办法控制 HTTPS 的超时时间?

我的配置:CentOS 5 上的 Apache 2.2.11

NameVirtualHost *:443
<VirtualHost *:443>
    SuexecUserGroup foo
    DocumentRoot /home/mydomain/www/
    ServerName example.com

    SSLEngine on
    SSLProtocol -all +TLSv1 +SSLv3
    SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
    SSLCertificateFile /path/example.com.com.crt
    SSLCertificateKeyFile /path/example.com.key
    SSLVerifyClient none
    SSLProxyVerify none
    SSLVerifyDepth 0
    SSLProxyVerifyDepth 0
    SSLProxyEngine off
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    <Directory "/home/mydomain/www">
            SSLRequireSSL
            AllowOverride all
            Options +FollowSymLinks +ExecCGI -Indexes
            AddHandler php5-fastcgi .php
            Action php5-fastcgi /cgi-bin/a.fcgi
            Order allow,deny
            Allow from all
    </Directory>
    <Directory …
Run Code Online (Sandbox Code Playgroud)

ssl https timeout apache-2.2

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

DNS 服务器响应和超时

我们在 LAN 上遇到了令人沮丧的问题。定期对我们的 ISP 域名服务器进行 DNS 查询会导致 5 秒的延迟。即使我/etc/resolv.conf通过直接挖掘我们的 DNS 服务器来绕过,我仍然会遇到问题。下面是一个例子:

mv-m-dmouratis:~ dmourati$ time dig www.google.com @209.81.9.1 

; <<>> DiG 9.8.3-P1 <<>> www.google.com @209.81.9.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14473
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.com.            IN  A

;; ANSWER SECTION:
www.google.com.     174 IN  A   74.125.239.148
www.google.com.     174 IN  A   74.125.239.147
www.google.com.     174 IN  A   74.125.239.146
www.google.com.     174 …
Run Code Online (Sandbox Code Playgroud)

domain-name-system timeout mac-osx dig

17
推荐指数
1
解决办法
2600
查看次数

SQL Server 中的超时保存表

我正在尝试使用 SSMS 向 SQL Server 2005 中包含大量数据的表中添加一列。

所以我浏览到表,选择修改,然后添加新列。然后,当我按保存时,我收到以下警告:

保存对包含大量数据的表的定义更改可能需要相当长的时间。保存更改时,将无法访问表数据

我没问题,数据库处于离线状态,而我一直在世界上,所以我按是。

但是,操作将在大约 30 秒后超时并显示以下消息:

无法修改表。超时已过。操作完成前超时时间已过或服务器未响应。

然后,当我按 OK 时:

用户取消保存对话框(MS Visual Database Tools)

我不明白。我已在 SSMS 连接对话框和工具 -> 选项 -> 查询执行 -> SQL Server 下将执行超时设置为 0(无限)。如果只是忽略它,设置执行超时有什么意义?

有谁知道这里使用了什么超时值,以及如何设置它?

timeout sql-server sql-server-2005 ssms

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

如何调试apache超时?

我使用prefork. Apache 每天收到大约 100k-200k 的请求,其中大约 100-200 个达到超时限制(所以大约千分之一),几乎所有其他请求都远低于超时。

我该怎么做才能找出发生这种情况的原因?或者所有请求的一些小部分超时是否正常?

这是我到目前为止所做的:

请求响应时间

可以看出,在超时限制和更合理的请求之间的请求很少。目前超时限制设置为 50 秒,之前设置为 300 并且情况仍然相同,有一些超时,然后与其他请求存在巨大差距。

所有超时的AJAX请求都是请求,但绝大多数都是请求,所以这可能更多是巧合。Apache 返回码为200,但显然已达到超时限制。它们来自各种不同的 IP。

我查看了超时的请求,它们没有什么特别之处,如果我执行相同的请求,它们会在不到一秒钟的时间内完成。

我试图查看不同的资源,看看我是否能找到原因,但没有运气。总是有足够的空闲内存(最低大约 3GB 空闲),负载有时高达 1.4,CPU 利用率高达 40%,但许多超时发生在负载和 CPU 利用率低时。磁盘写入/读取在白天几乎保持不变。MySQL 慢查询日志中没有条目(设置为记录 1 秒以上的任何内容),无请求使用那么多数据库写入/读取。

请求响应时间与系统负载/cpu

蓝色是 CPU 利用率,峰值为 40%,栗色是负载,峰值为 1.4。所以我们可以看到,即使 CPU 利用率/负载较低,也会出现超时(十秒峰值与 CPU 利用率很好地对应,但这是另一个问题,我更有希望找出可能导致这些问题的原因)。

Apache 错误日志中没有错误,我还没有看到它达到超过 200 个活动的 Apache 进程。

服务器设置:

Timeout 50 
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
    ServerLimit     350
    StartServers        20
    MinSpareServers     75
    MaxSpareServers     150
    MaxClients          320
    MaxRequestsPerChild 5000
</IfModule>
Run Code Online (Sandbox Code Playgroud)

更新:

我更新到 Ubuntu 12.04.1,以防万一,没有变化。我添加了 mod_reqtimeout 设置: …

timeout apache-2.2

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