Как настроить Nginx обратный прокси для доступа к моим локальным хостам из inte rnet? - PullRequest
0 голосов
/ 01 февраля 2020

У меня возникли проблемы с настройкой Nginx в качестве обратного прокси-сервера, чтобы мои виртуальные машины с частными IP-адресами были доступны из inte rnet.

Я нарисовал диаграмму с моей текущей конфигурацией.

enter image description here

Мой выделенный сервер работает на гипервизоре Proxmox и имеет только 1 публикацию c айпи адрес. На гипервизоре был установлен мост, чтобы получить доступ виртуальной машины к inte rnet через их локальный IP-адрес.

Я провел некоторое исследование и обнаружил, что это возможно с помощью обратного прокси Nginx для достижения виртуальные машины с частным IP-адресом (которые работают на сайтах) от inte rnet, но у меня есть некоторые проблемы с его правильной настройкой.

Мой конфиг / 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 и запускает веб-сайт (с Apache), который имеет доменное имя «london.austria.com»

Vm2 имеет IP-адрес 192.168.4.5 и запустить веб-сайт (с Apache), который имеет доменное имя «manchester.austria.com»

Я приобрел доменное имя, назовем его «austria.com».

В мой регистратор, я установил записи A для 2 поддоменов:

london.austria.com с записью A, указывающей на 40.53.XX.XX

manchester.austria.com с записью A указывая на 40.53.XX.XX

VM1 config: 192.168.4.4 wi субдомен "london.austria.com", на котором запущен wwebiste с Apache. Брандмауэр отключен

Конфигурация VM2: 192.168.4.5 с субдоменом "manchester.austria.com", на котором работает wwebiste с Apache. Брандмауэр отключен

Nginx был установлен в контейнер Ubuntu LX C со следующими шагами:

запуск systemctl nginx

включение systemctl nginx

unlink / 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" в браузере.

Из дома :

Я не могу получить доступ к веб-сайтам в виртуальной машине.

Я даже go не продвинулся дальше, чтобы протестировать виртуальную машину.

...