【问题标题】:Nginx cannot disable keepalive for particular URINginx 无法为特定 URI 禁用 keepalive
【发布时间】:2014-11-03 06:26:17
【问题描述】:

移动 Safari 客户端会向我们的服务器发出多个重复的 GET 请求,我认为这是由于流水线:Safari Sends Two HTTP Req. Same Time/Socket

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

我正在尝试为 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;
    }
}

【问题讨论】:

    标签: nginx mobile-safari uwsgi pipelining


    【解决方案1】:

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

    keepalive_timeout 0;
    

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

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

    【讨论】:

      猜你喜欢
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多