У меня возникли проблемы с настройкой Nginx в качестве обратного прокси-сервера, чтобы мои виртуальные машины с частными IP-адресами были доступны из inte rnet.
Я нарисовал диаграмму с моей текущей конфигурацией.
Мой выделенный сервер работает на гипервизоре 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 не продвинулся дальше, чтобы протестировать виртуальную машину.