我正在尝试在我的网络上设置NGINX反向代理,它当前正在Ubuntu VM上运行。我想运行一个在IIS中运行的网站,以及在同一公共IP地址后面的Linux VM中运行Apache的另一个站点。 NGINX似乎是完美的解决方案。
我遵循了几个指南,似乎无法让一切正常。 NGINX配置似乎在本地工作,如果我直接访问NGINX VM的IP它为我提供默认配置,我甚至可以在IIS站点或Apache站点之间更改它,并让它在本地工作。我的问题是任何外部连接。
以前我的pfSense路由器设置为将端口80和443转发到IIS VM,并且工作正常,所以我在基本级别知道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主机conf:
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日志等中收到任何错误消息。我老实说不知所措。任何建议将不胜感激。
答案 0 :(得分:0)
您已将其设置为Apache正在转发到Nginx。您的Nginx文件没有转发任何内容。如果Nginxis将成为反向代理,那么Apache配置文件中显示的位置/ {...}组件需要位于Nginx配置文件中。另外,我会更改“服务器名称_”以在Nginx文件中显示您的域名。