Http nginx和proxy_pass-发送连接:关闭标头

Http nginx和proxy_pass-发送连接:关闭标头,http,nginx,Http,Nginx,nginx似乎正在替换上游发送的连接:关闭头,并将其替换为连接:保持活动头。有什么办法可以推翻它吗 http { upstream main { server 127.0.0.1:8000; } server { listen 443; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; location / { proxy_pass htt

nginx似乎正在替换上游发送的
连接:关闭
头,并将其替换为
连接:保持活动
头。有什么办法可以推翻它吗

http {
  upstream main {
    server 127.0.0.1:8000;
  }
  server {
    listen 443;
    ssl on;
    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    location / {
      proxy_pass http://main;
    }
    location /find {
      proxy_pass http://main;
      proxy_buffering off;
    }
  }
}

设置
keepalive\u请求0
说服nginx发送
连接:关闭

如果您使用的是PHP-FPM或PHP-fastcgi:

此功能允许您加速某些php的实现 查询。当车辆中有动作时,加速是可能的 不影响服务器响应的脚本执行过程。对于 例如,将会话保存在memcached中可以在页面完成后进行 已形成并传递给web服务器。fastcgi_finish_request()是一个 php特性,停止响应输出。Web服务器立即 开始将响应“缓慢而悲伤地”传输到客户端,php 同时可以做很多有用的事情,在一个 查询,如保存会话、转换下载的视频、, 处理各种统计等


在安全服务器上禁用keepalive会增加服务器负载,请查看本文档中的“HTTPS服务器优化”会话。。


我可能需要设置一个小的keepalive_requests值,并设置keepalive_requests值。连接头是特定于连接的

从HTTP/1.1规范

Connection general header字段允许发送方指定特定连接所需的选项,并且不得通过代理通过进一步的连接进行通信

所以nginx发送的内容独立于从上游发送的内容,并且必须是。以下是一些选项:

如果不希望重新使用连接,则keepalive_请求0可以工作

keepalive_disable ua适用于特定的用户代理


并且可以使用ip。

您可以修补
NGINX
。以
FastCGI
为例,添加

if (strcmp((char *)h->key.data, "Connection") == 0 && strcmp((char *)h->value.data, "close") == 0) {
     ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "Set Connection: close");
     r->keepalive = 0;
}

src/http/modules/ngx\u http\u fastcgi\u module.c
第1977行中,就在头解析器之后。

不满意。此指令只能接受文字数字,不能接受变量。我需要能够根据每个请求决定是否关闭连接,可能是在使用Lua检查上游响应之后。