nginx 后面的 Supervisord inet_http_server

nginx 后面的 Supervisord inet_http_server

我们已经[inet_http_server]在 上运行了supervisord 127.0.0.1:9001

当我们尝试将其置于 nginx 后面时 - Supervisord logtail 停止工作。

主管设置:

[inet_http_server]
port = 127.0.0.1:9001

Nginx 设置:

server {
    listen 80;
    server_name server.com;
    location / {
        proxy_pass http://127.0.0.1:9001/;
    }
}

在哪里挖? (停止 | 开始 | 重新启动)命令有效,只有尾部命令无效。

答案1

这是设计使然,因为 nginx 会等到从后端收到完整的回复后,再将响应发送回客户端——默认启用代理缓冲

这将解决您的问题:

proxy_buffering off;

答案2

对我来说,添加以下几行有效:proxy_http_version 1.1;proxy_set_header Connection "";

我的完整工作配置代理主管输出与基于 Web 的 tail-f 工作:

server {
  listen 9000;
  listen [::]:9000;

  server_name server.gmetri.com;

  location / {
    proxy_pass http://localhost:4001;
    proxy_http_version 1.1;
    proxy_buffering     off;
    proxy_max_temp_file_size 0;
    proxy_redirect     default;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   Connection       "";
  }
}

相关内容