相关疑难解决方法(0)

浏览器中最大并行http连接?

我正在创建一些到HTTP服务器的暂停连接(彗星,反向ajax等).它工作正常,但我看到浏览器只允许两个同时挂起到给定域的连接.因此,如果用户在浏览器的Tab1中查看我的网站,那么也尝试在Tab2中加载它们,他们已经用尽了两个允许的连接到我的网站.

我想我可以做一些通配域的东西,我有我的http服务器解析我的网站的任何地址,如:

*.example.com/webapp  -> 192.0.2.1 (the actual ip of my server)
Run Code Online (Sandbox Code Playgroud)

所以:

a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
Run Code Online (Sandbox Code Playgroud)

所有仍然指向(www.example.com/webapp)但浏览器认为它们是不同的域,所以我没有遇到2连接限制.这是真的?

即使这真的 - 所有域中每个浏览器的活动连接数是否有限制?假设我使用上面的方案 - 例如,Firefox在任何给定时间只允许24个并行连接吗?就像是:

1) a.example.com/webapp
2) www.download.example/hugefile.zip
3) b.example.com/webapp
4) c.example.com/webapp
...
24) x.example.com/webapp
25) // Error - all 24 possible connections currently in use!
Run Code Online (Sandbox Code Playgroud)

我刚刚选择了24个连接/ Firefox作为示例.

html web-applications http persistent-connection web-performance

437
推荐指数
9
解决办法
32万
查看次数

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万
查看次数

保持活动状态并请求超时

据我了解,该keep-alive消息旨在防止底层 TCP 连接关闭,以便可以通过同一 TCP 连接发送多个请求。

然而,尚不清楚这如何影响已超时的请求:

  • 如果通过同一个 TCP 连接处理多个请求,当客户端超时时,ASP.NET 如何知道?我不确定如何正确地提出这个问题,但我怀疑HttpWorkerRequest.IsClientConnected如果底层 TCP 连接关闭,这是错误的?如何判断客户端是否超时?肯定不能再发送响应了吗?
  • 既然客户端可以发送keep-alive消息,那么它对请求有什么影响(如果有的话)?我预计它不会产生任何影响,并且超时等机制将照常工作。

感谢您的时间和帮助。

c# asp.net tcp keep-alive

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