我正在尝试在我的网络上设置 NGINX 反向代理,它目前正在 Ubuntu VM 上运行。我想运行一个在 IIS 中运行的网站,以及在同一公共 IP 地址后面的 Linux VM 中运行在 Apache 上的另一个站点。NGINX 似乎是完美的解决方案。
我遵循了几个指南,似乎无法让一切正常工作。如果我直接访问 NGINX VM 的 IP,NGINX 配置似乎可以在本地工作,它为我提供默认配置,我什至可以在 IIS 站点或 Apache 站点之间更改它,并让它在本地工作。我的问题来自任何外部连接。
以前我的 pfSense 路由器设置为将端口 80 和 443 转发到 IIS 虚拟机,并且工作正常,所以我基本知道 pfSense 能够将这些端口转发到该 Windows 客户端。设置好 NGINX 后,我将端口转发更改为 80 和 443,以指向运行 NGINX 的 VM。现在我的网站都无法运行,域的 IP 地址解析为我的公共 IP,但请求超时/永远不会到达任何 Web 服务器。
nginx.conf 是默认的,我没有做任何更改。
默认 nginx 主机配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
return 404;
}
}
Apache主机配置:
server {
listen 80;
server_name domain.com;
location / {
proxy_pass http://0.0.0.0:80; # Apache internal IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
pfSense 端口 80 规则:
Action: Pass
Interface: WAN
Address Family: IPv4
Protocol: TCP
Source: Any
Destination: NGINX VM IP
From: 80
To: 80
我在控制台、NGINX 日志等中没有收到任何错误消息。老实说,我很茫然。任何建议将不胜感激。