У меня есть один общедоступный IP-адрес, связанный с Apache в Ubuntu через модем NAT. Как мне настроить Apache для обслуживания страниц с других машин, которые также находятся за тем же модемом NAT? (Я не хочу, чтобы эти другие машины были доступны напрямую из Интернета.)
Я использую для этого прокси apache.
Пример конфигурации виртуального хоста, который передает запросы к другому веб-серверу, выглядит следующим образом:
<VirtualHost *:80>
ServerName example.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://secondapache/
ProxyPassReverse / http://secondapache/
</VirtualHost>
Если "secondapache" должен быть разрешен, или вы можете использовать IP-адрес, просто убедитесь, что он совпадает в строках ProxyPass и ProxyPassReverse (не забудьте эти http: // и /)
Также необходим ProxyPreserveHost On, чтобы второй веб-сервер получил реальное имя хоста, введенное пользователем в браузере.
Это было для обратного прокси-сервера HTTP apache, вы также можете использовать, например, лак для настройки обратного прокси-сервера HTTP.
Другой метод - просто использовать NAT:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination secondapacheIP:80