对于学校的这个项目,我们获得了 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;
}