反向代理 nginx 不工作;有人知道原因吗?

反向代理 nginx 不工作;有人知道原因吗?

对于学校的这个项目,我们获得了 1 个公共 IP 地址,我们想在该地址上运行多个 Web 服务(Roundcube Webmail、nextcloud 和防火墙的 Webconfigurator)。在公共 IP 上,我们运行了一个 pfSense 防火墙,它还负责路由。在防火墙的 LAN 中,我们有 3 个服务器,一个邮件服务器(带有 Webmail)、一个 Nextcloud 服务器和一个 nginx 服务器,我正尝试将其用作反向代理。首先,我尝试访问 Webconfigurator,但它不起作用,我找不到原因。以下是配置:

server {
  server_name pfsense.domain.com;

  location ~ {
    proxy_pass_header Authorization;
    proxy_pass http://10.1.1.2:80;
    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_http_version 1.1;
    proxy_set_header Connection "";
    proxy_buffering off;
    client_max_body_size 0;
    proxy_read_timeout 36000s;
    proxy_redirect on;
  }
}

pfSense 位于本地 IP 10.1.1.2 上。我将端口 80 和 443 转发到 nginx 服务器,但配置不起作用。文件名是/etc/nginx/sites-available/webservers.conf,我在sites-enabled文件夹中创建了一个符号链接。我从此 Stack Exchange 上的另一个线程复制了配置。

答案1

我自己一步一步修复了这个问题。我从这个开始:

   server {
        listen 80;
        location / {
            proxy_pass http://192.x.x.2;
        }
    }

然后我一步步添加了额外的选项。我在http://nginx.org/en/docs/http/ngx_http_proxy_module.html。我最终得到了以下结果,效果很好!

}
server {
    server_name mail.domain.eu www.mail.domain.eu;
    location / {
        proxy_pass http://10.1.1.4;
        proxy_set_header Host       $http_host;
        proxy_set_header Host       $host;
    }

相关内容