0

我正在尝试在我的网络上设置 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 日志等中没有收到任何错误消息。老实说,我很茫然。任何建议将不胜感激。

4

1 回答 1

0

你已经设置好了,所以 Apache 正在转发到 Nginx。您的 Nginx 文件没有转发任何内容。如果 Nginxis 将成为反向代理,那么在 Apache 配置文件中显示的 location / { ... } 组件需要在 Nginx 配置文件中。另外,我会更改“服务器名称_”以在 Nginx 文件中显示您的域名。

于 2018-05-18T18:52:14.223 回答