【发布时间】:2018-02-27 22:04:41
【问题描述】:
我的服务器 A 上有以下 nginx 设置(面向互联网,仅相关部分):
upstream new_api {
server unix:///home/ubuntu/new_api/shared/tmp/sockets/puma.sock;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
large_client_header_buffers 4 16k;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
location ~ (^(/some/location|/some/other)) {
proxy_pass http://new_api;
}
location / {
proxy_pass https://serverB.com;
}
}
现在,如果我转到 /some/location,它可以通过上游的新 api 正常服务。但是我不断从 nginx 收到“400 Bad Request Request Header or Cookie Too Large”。即使 curl 没有 cookie 并且只有两个短标题。增加large_client_header_buffers 没有帮助。
有趣的是,我根本没有看到这个请求到达服务器 B,所以它在服务器 A 上被切断了。为什么?可能是因为https 协议我正在代理传递到吗?
此外,在设置服务器 A 之前,一切都将毫无问题地转到服务器 B。
【问题讨论】:
标签: nginx cookies http-headers proxypass