Nginx

nginx 代理到 apache,無法啟用 keepalive (403)

  • May 30, 2021

我的設置是:

upstream http_backend {
   server 127.0.0.1:81;
   keepalive 16;
}

server {
   ...

   location / {
       proxy_pass http://http_backend;
       proxy_http_version 1.1;
       proxy_set_header Connection "";
   }
}

但我403在每一頁上都有一個。

如果我評論#proxy_set_header Connection "";頁面已載入。但是根據nginx docs,它應該被清除:

對於 HTTP,proxy_http_version 指令應設置為“1.1”,並且應清除“Connection”標頭欄位:

我必須在 Apache 端設置什麼,以便我可以在 nginx(代理和 ssl 解除安裝程序)和 apache(mpm_event 和 php-fpm)之間設置 keeplive?KeepAlive已設置為On

好的,錯誤是我在server外面的塊中設置了一些標題location,所以這些被新proxy_set_header指令清除了。我必須將它們包含在location塊中,例如:

server {
   ...

   location / {
       proxy_pass http://http_backend;
       proxy_http_version 1.1;
       proxy_set_header Connection "";
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

引用自:https://serverfault.com/questions/1065118