标签: timeout

Windows 上不同浏览器之间的保持活动和超时行为

精简版

为什么 chrome 会发出 keep-alive,而 IE 和 FF 不会?

长版

最初,我认为这是服务器端问题。

我有一个 apache 服务器,它是 tomcat webapp 的前端代理。此应用程序上的其中一个页面需要 15-20 分钟才能返回结果。我观察到在通过 IE 或 FF 访问时,使用此页面会超时。它转到标准的“无法访问”页面,就像您在尝试访问网络时查看网络电缆是否断开一样。然而,在 Chrome 上,它工作得很好。

这让我很好奇,所以我在服务器上用 tcpdump 监视了流量,我注意到了很大的不同。虽然 IE 和 FF 在超时之前一直保持沉默,但 chrome 会定期向服务器发送 ACK 数据包(并且正在收到响应 ACK)。另外值得注意的是,IE/FF 似乎都发送了 TCP 断开连接,而不是从服务器接收任何超时。

是的,为什么 IE/FF 断开连接,而 Chrome 没有断开连接?为什么 Chrome 会发送 keep-alives 而 IE/FF 不会?

我已尝试更改此知识库文章中MS 推荐的注册表设置。它似乎没有改变任何行为。

来自 IE 的流量示例(FF 几乎相同)

23:25:56.814732 IP InternetExplorer.27378 > Server.https: . 83070:84430(1360) ack 154 win 65382
23:25:56.814976 IP InternetExplorer.27378 > Server.https: . 84430:85790(1360) ack 154 win …
Run Code Online (Sandbox Code Playgroud)

internet-explorer timeout firefox google-chrome keepalive

4
推荐指数
1
解决办法
9958
查看次数

Apache 2.2 CGI 超时配置

我有一个默认的 Apache 2.2 系统设置,其中有一个 Perl CGI 脚本目录,配置如下:

ScriptAlias /jarvis/ "/opt/jarvis/cgi-bin/"
Run Code Online (Sandbox Code Playgroud)

除了我的一个脚本需要 10 多分钟来处理之外,这里没有什么特别的,并且由于各种原因,在此期间没有打印任何内容。

Apache 似乎有 10 分钟(600 秒)的时间范围来运行 CGI 脚本 - 如果在此时间范围内脚本没有出现任何输出,则脚本将被终止,并向浏览器/客户端发送 500 响应。

消息:

[Thu Apr 23 13:57:53 2009] [warn] [client 127.0.0.1] Timeout waiting for output from CGI script /opt/jarvis/cgi-bin/jarvis.pl
Run Code Online (Sandbox Code Playgroud)

出现在一个系统(Ubuntu,通过 apt-get 安装)的日志中,但不会出现在另一个系统(Windows,通过包下载安装)上。

我的问题是 - Apache 2.2 中是否有任何配置可以让我运行脚本超过 10 分钟而不会被杀死?

编辑

定期写入日志消息可以避免此错误 - 因此每隔几分钟写入一次日志消息可确保长时间运行的进程不会被终止。我最终通过在客户端上实现一个进度条并让我的脚本编写一个“.”来解决我的问题。每隔一段时间更新另一端的栏。

谢谢,杰米

timeout cgi apache-2.2

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

Areca 1880i RAID 卡未初始化:“正在等待固件准备就绪”

在具有此硬件的服务器的 kickstart 安装 (Centos 6.0) 期间:

  • 槟榔 1880i 8 端口 SAS RAID PCIe 512MB 缓存
  • 槟榔备用电池模块
  • 6日立 Deskstar 7K3000 HDS723030ALA640 64MB 3TB

我按下ctrl+ alt+ del,因为我想重新开始kickstart安装。以前用这种方式重新启动kickstart 安装是行得通的,所以我很惊讶Areca 1880i 卡的初始化在下次启动时失败。首先计算机显示此消息几秒钟

AMIBIOS(C)2009 American Megatrends, Inc.
Supermicro X8DTN+-F BIOS Date: 03/17/11 16:42:32 Ver 2.1
CPU : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
 Speed : 2.40 GHz    Count : 2

Press DEL to run Setup (F4 on Remote Keyboard)
Press F12 if you want to boot from the network
Press …
Run Code Online (Sandbox Code Playgroud)

timeout boot hardware-raid

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

HAProxy 特定 URI

所以我的HAProxy配置和这个类似。

listen webaustin 0.0.0.0:80
    mode http
    timeout connect 12000
    timeout server 60000
    timeout queue 120000
    balance roundrobin
    option httpchk GET /index.html
    log global
    option httplog
    option dontlog-normal
    server web1 10.10.10.101:80 maxconn 600 check fall 10
    server web2 10.10.10.102:80 maxconn 600 check fall 10
    server web3 10.10.10.103:80 maxconn 600 check fall 10
    server web4 10.10.10.104:80 maxconn 600 check fall 10
Run Code Online (Sandbox Code Playgroud)

这对我们的系统非常有效,四个后端网络服务器,一个前端网络服务器,超时设置合理。

我的问题是,我有一个 URL,我需要更长的超时时间。这是一项非常繁重的任务,在后端需要很长时间。

无论如何要更改单个 URL 的超时变量?

url timeout haproxy 504

4
推荐指数
1
解决办法
3175
查看次数

上传大文件时 Nginx 代理超时

我在使用 Nginx 时遇到了奇怪的行为。就我而言,Nginx 充当 Jetty 的代理。配置如下:

server {
    listen   80;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    client_max_body_size 5M;
    server_name test.com www.test.com
    location / {
         auth_basic     "Restricted area";
         auth_basic_user_file   /etc/nginx/htpasswd;
         proxy_pass        http://localhost:8080;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header  X-Forwarded-Proto http;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  Host $http_host;
         gzip on;
    }
}
Run Code Online (Sandbox Code Playgroud)

上传大小大于 5M 的文件时,出现“网关超时”。CPU 使用率为 0%。我不知道出了什么问题。它与网络速度无关,因为我正在本地测试。

如果我跳过代理并尝试直接将文件上传到应用程序服务器(我的意思是:在端口 8080 上),一切都像魅力一样。

任何的想法 ??问候!

nginx timeout upload

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

Postfix 连接超时

我使用下面的教程在 Digital Ocean 服务器上设置 postfix 和 dovecot。但是当 postfix/smtp 尝试将电子邮件发送到 gmail 或 yahoo 等远程主机时,我收到了“连接超时”的消息。

https://www.digitalocean.com/community/articles/how-to-set-up-a-postfix-e-mail-server-with-dovecot


接收新消息 /var/log/mail.log


Feb 2 22:33:38 localhost dovecot:auth-worker:调试:从目录加载模块:/usr/lib/dovecot/modules/auth

Feb 2 22:33:38 localhost dovecot: auth-worker: Debug: pam(app,189.63.49.XXX): 查找服务=dovecot

Feb 2 22:33:38 localhost dovecot: auth-worker: Debug: pam(app,189.63.49.XXX): #1/1 style=1 msg=Password:

Feb 2 22:33:38 localhost dovecot: auth: Debug: client out: OK#0111#011user=app

Feb 2 22:33:40 localhost postfix/submission/smtpd[1045]: E9AA724264: client=unknown[189.63.49.XXX], sasl_method=PLAIN, sasl_username=app

2 月 2 日 22:33:43 本地主机后缀/清理 [1052]:E9AA724264:消息 ID=

Feb 2 22:33:43 localhost postfix/qmgr[32661]: E9AA724264: from=, size=485, nrcpt=1 (queue active)

2 …

email-server postfix timeout dovecot

4
推荐指数
1
解决办法
3486
查看次数

如何避免服务器重启期间超时

我遇到了使用 DNS 循环进行故障转移的站点的问题。

有两个网络服务器。当我在一个盒子上关闭 apache 时,一切都很好。当浏览器尝试在 apache 关闭的情况下访问网络服务器时,它会拒绝连接并自动尝试另一个连接。

但是,重新启动时,我遇到了问题。当我重新启动服务器时,而不是连接被拒绝,浏览器现在等待超时导致站点非常慢,直到服务器恢复。

有没有办法设置网络(或 CentOS),以便在重新启动期间,该 IP 继续拒绝而不是花费很长时间超时?

failover timeout connection-refused

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

HAProxy 间歇性 504 错误

数周以来,我一直在为这个问题而苦苦挣扎,但我的想法已经不多了。我运行 HAProxy 以根据请求的路径/标头在 3 个后端之间代理请求。

我的后端是:

  • 一个 Amazon S3 存储桶
  • 一个 Node.js 应用程序(2 个服务器)
  • 一个名为 prerender.io 的服务

最后一个后端 (prerender.io) 似乎有零问题(尽管它的流量很少)。另外两个随机向客户端返回 504 错误(根据日志大约每分钟一次,但没有明确的模式)。

这是我的(消毒)配置:

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    timeout connect 5s
    timeout client  120s
    timeout server  120s

frontend foobar
    mode http
    bind *:80
    bind *:443 ssl crt /etc/ssl/certs/foobar.com.pem
    redirect scheme https code 301 if !{ ssl_fc }

    default_backend s3

    acl api path_beg -i /api/
    use_backend node if api

    acl user-agent-bot hdr_sub(User-Agent) -i baiduspider twitterbot facebookexternalhit 
    use_backend …
Run Code Online (Sandbox Code Playgroud)

timeout haproxy 504

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

普通 uWSGI 错误:uwsgi_response_write_body_do() TIMEOUT

这看起来像是 Nginx+uWSGI 超时的一个众所周知的问题,但我的设置不同,我找不到有关它的信息。

我在 uWSGI 上运行 Flask 应用程序,使用 http 协议(不是套接字)。当我查询 API 时,有时会收到错误消息:

uwsgi_response_write_body_do() TIMEOUT !!!
IOError: : write error
Run Code Online (Sandbox Code Playgroud)

我在“工作时间”收到它的频率更高,即在晚上不那么频繁。我正在查询长 JSON 数据(地理坐标,最多 50 MB),有时我根本没有得到响应,有时我得到了部分响应。这些是来自 Pythonrequests请求的错误:

requests.exceptions.ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))

requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))

ValueError: Expecting object: line 1 column 5590371 (char 5590370)

ValueError: Unterminated string starting at: line 1 column 20998536 (char 20998535)

ValueError: end is out of bounds

# when I set `timeout=None` in Python
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='mydomain.com', port=80): …
Run Code Online (Sandbox Code Playgroud)

timeout requests uwsgi

4
推荐指数
1
解决办法
2613
查看次数

增加到特定 URL 的 WebSocket 连接的客户端超时

在 CentOS 7 Linux 上,我在通过 FastCGI 为 Wordpress 站点提供服务Jetty 9前面成功使用了 HAProxy 1.5.14 。

它工作得非常好,但是对于同一网站上的 HTML5/WebSocket 游戏,WebSocket 连接到/ws/URL 的客户端和服务器超时需要更高的时间。

所以我将/etc/haproxy/haproxy.cfg文件修改为以下内容:

global
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    tune.ssl.default-dh-param 2048

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m    # HOW TO INCREASE FOR /ws/ ?
    timeout …
Run Code Online (Sandbox Code Playgroud)

timeout haproxy websocket

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