移动版Safari客户端会向我们的服务器发出多个重复的GET请求,我认为这是由于流水线操作:Safari Sends Two HTTP Req. Same Time/Socket。
由于我们的端点不是幂等的,因此我们遇到了问题,因为其中一个请求将失败并且客户端会出现不稳定的行为。
我试图在Nginx中仅为一个端点禁用keepalive。有任何想法吗?下面给出了一个nginx 404错误,日志显示nginx正在尝试访问文件系统位置:" / usr / share / nginx / html / 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;
}
}
答案 0 :(得分:0)
不幸的是,这在nginx中是不可能的。我们在全局设置时不再看到重复的请求:
keepalive_timeout 0;
Out上游负载均衡器使用haproxy而没有SSL终止,因此客户端可能会以奇怪的方式响应这一点,而我们在幕后的nginx配置行为奇怪。
长话短说,仍然困惑!