如何设置Nginx反向代理从互联网访问我的本地主机?

时间:2020-02-01 10:06:33

标签: nginx server reverse-proxy lxc

我很难将Nginx配置为反向代理,以便可以从Internet访问带有私有IP地址的虚拟机。

我用当前配置绘制了一个图。

enter image description here

我的专用服务器在Proxmox虚拟机管理程序上运行,并且只有1个公共IP地址。虚拟机管理程序上已安装一个网桥,以使虚拟机通过其本地IP地址访问Internet。

我进行了一些研究,发现使用Nginx反向代理可以通过互联网从私有IP地址(正在运行网站的人)访问具有虚拟机的虚拟机,但是我在设置时遇到了一些麻烦。

我在管理程序上的配置/ etc / network / interfaces

root@ns568745:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback


# vmbr0: Bridging. Make sure to use only MAC adresses that were assigned to you.
auto vmbr0
iface vmbr0 inet static
        address 40.53.XX.XX/24
        gateway 40.53.XX.254
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0





auto vmbr1
iface vmbr1 inet static
        address  192.168.4.254/24
        broadcast 192.168.4.255
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.4.254/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.4.254/24' -o vmbr0 -j MASQUERADE


post-up   iptables -t nat -A PREROUTING -i vmbr1 -p tcp --dport 80 -j DNAT --to 192.168.4.2:80
post-down iptables -t nat -D PREROUTING -i vmbr1 -p tcp --dport 80 -j DNAT --to 192.168.4.2:80
post-up   iptables -t nat -A PREROUTING -i vmbr1 -p tcp --dport 443 -j DNAT --to 192.168.4.2:443
post-down iptables -t nat -D PREROUTING -i vmbr1 -p tcp --dport 443 -j DNAT --to 192.168.4.2:443

Vm1的IP地址为192.168.4.4,并运行一个域名为“ london.austria.com”的网站(使用Apache)

Vm2的IP地址为192.168.4.5,并运行一个域名为“ manchester.austria.com”的网站(使用Apache)

我购买了一个域名,命名为“ austria.com”。

在我的注册商中,我设置了2个子域的A记录:

london.austria.com的A记录指向40.53.XX.XX

manchester.austria.com的A记录指向40.53.XX.XX

VM1配置: 192.168.4.4,子域“ london.austria.com”与Apache一起运行wwebiste。防火墙已禁用

VM2配置: 192.168.4.5,子域“ manchester.austria.com”与Apache运行wwebiste。防火墙已禁用

已通过以下步骤将Nginx安装在LXC ubuntu容器中:

systemctl启动nginx

systemctl启用Nginx

取消链接/ etc / nginx / sites-enabled / default

cd / etc / nginx / sites-available

vim reverse-proxy.conf

    server {
            listen 80;
            listen [::]:80;

            access_log /var/log/nginx/reverse-access.log;
            error_log /var/log/nginx/reverse-error.log;

            location / {
                        proxy_pass http://192.168.4.4:80;
      }
    }

ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf

我执行的测试:

在vm1内部:

我可以通过输入IP地址192.168.4.4来访问该网站

我无法通过在浏览器中输入域名“ london.austia.com”来访问该网站。

在家:

我无法访问虚拟机中的网站。

我什至没有进一步测试vm2。

0 个答案:

没有答案