0

移动 Safari 客户端将对我们的服务器执行多个重复的 GET 请求,我认为这是由于流水线:Safari 发送两个 HTTP 请求。同一时间/套接字

由于我们的端点不是幂等的,因此我们遇到了问题,因为其中一个请求将失败并且客户端会出现不稳定的行为。

我试图为 Nginx 中的一个端点禁用 keepalive。有任何想法吗?下面给了我一个 nginx 404 错误,日志显示 nginx 正在尝试访问文件系统位置:“/usr/share/nginx/html/duplicateget”,特殊端点/duplicateget的“没有这样的文件或目录”。(我称之为duplicateget作为例子)

location / {
    ssi off;
    autoindex off;

    include uwsgi_params;
    uwsgi_param   Host               $host;
    uwsgi_param   X-Real-IP          $remote_addr;
    uwsgi_param   X-Forwarded-For    $proxy_add_x_forwarded_for;
    uwsgi_param   X-Forwarded-Proto  $http_x_forwarded_proto;

    uwsgi_pass cluster;

    location /duplicateget {
        keepalive_timeout 0;
    }
}
4

1 回答 1

0

不幸的是,这在 nginx 中是不可能的。当我们全局设置时,我们不再看到重复的请求:

keepalive_timeout 0;

上游负载均衡器使用没有 SSL 终止的 haproxy,因此客户端可能会以一种奇怪的方式对此做出响应,并且我们在幕后的 nginx 配置行为也很奇怪。

长话短说,还是一头雾水!

于 2014-12-08T22:42:53.347 回答