мы используем Apache2 для размещения нескольких сайтов в одной системе в нашей локальной сети. Один из таких сайтов следующий:
<VirtualHost *:80>
ServerName wiki.idi.local
DocumentRoot /srv/dokuwiki/engineering
</VirtualHost>
На нашем локальном DNS-сервере мы перенаправляем адрес wiki.idi.local на компьютер, на котором размещен сайт, и все работает, как ожидалось.
С этой недели мы получили способ доступа к нашей локальной сети извне путем сопоставления локальных IP-адресов с внешним (перенаправление через прокси). Так, например, адрес 3.205.151.6 (внешний) перенаправлен на 172.16.1.6 (внутренний). Это отлично работало для сайтов, где в VirtualHost DocumentRoot был бы localhost: port. В этом случае мы можем просто вызвать 3.205.151.6:port для доступа к нашим системам. Проблема в том, что в упомянутом выше случае я не могу найти способ получить доступ к сайту только через IP. Есть ли способ сделать это, не имея доступа к прокси, который выполняет пересылку?
Вероятно, вы захотите настроить представления в своем программном обеспечении DNS, чтобы на запросы DNS из Интернета отвечал общедоступный IP-адрес, а на запросы DNS из локальной сети - частный IP. Для получения дополнительной информации проверьте эту ссылку, например
На стороне Apache вам нужно добавить какое-то публичное имя, поскольку домен с .local не разрешим. Допустим, у вас есть домен idi.com
вы можете обновить свой VirtualHost чем-то вроде
<VirtualHost *:80>
ServerName wiki.idi.local
ServerAlias wiki.idi.com
DocumentRoot /srv/dokuwiki/engineering
</VirtualHost>
И убедитесь, что ваше общедоступное представление DNS для wiki.idi.com отвечает IP 3.205.151.6
и, возможно, вы могли бы настроить частное представление DNS для того же wiki.idi.com, чтобы ответить с 172.16.1.6
и вам не понадобится домен wiki.idi.local
вообще.