Как сопоставить поддомен с внутренним IP-адресом

298
suamikim

Я хотел бы получить доступ к некоторым внутренним службам, таким как веб-клиент моего NAS (Synology DSM), через выделенные субдомены, такие как https://nas.example.com.

Сервисы полностью запущены и доступны через внутренние IP-адреса https://192.168.0.200:5001.

Я, очевидно, владею доменом example.comи у меня запущен и работает сервер Apache.

Есть в основном две причины, по которым я бы хотел достичь вышеуказанного:

  • Субдомен nas.example.comлегче запомнить, чем192.168.0.200:5001
  • Я хотел бы использовать свои существующие сертификаты HTTPS, для nas.example.comкоторых я не могу с внутренними IP-адресами

Я уже играл с Apache, mod_rewriteно безуспешно. К сожалению, я не могу сказать, возможен ли этот сценарий даже mod_rewriteили я просто не настроил его правильно.

Некоторые заметки:

  • Услуги не должны быть доступны извне, а только изнутри моей локальной сети.
  • В идеале они также должны быть доступны через субдомены при подключении к сети извне через туннели SSH. Поэтому выделенный DNS-сервер dnsmasqне подходит для поиска, так как он обрабатывает запросы только из локальной сети (наверное ...).
1

2 ответа на вопрос

1
WhiteWind

Это проще сделать с помощью nginx, но apache может справиться и с этим, используя mod_proxy

Вы должны настроить VirtualServer для домена nas.mysite.com и включить обратный прокси-сервер для этого виртуального сервера:

ProxyPass "/" "http://192.168.0.200:5001" ProxyPassReverse "/" "http://192.168.0.200:5001" 
1
HBruijn

Не пытайтесь настроить обратный прокси-сервер, если:

Услуги не должны быть доступны извне, а только изнутри моей локальной сети.

Просто создайте запись DNS, которая указывает nas.example.comна ваш IP-адрес

nas.example.com. IN A 192.168.0.200 

Не маршрутизируемые IP-адреса из подсети 192.168.0.0/16 будут работать только в вашей локальной сети.

Затем настройте веб-интерфейс DSM на работу с портом 80, портом по умолчанию для HTTP, и вам больше не нужно будет использовать номер порта, например 5000, в URL.

Да, я пропустил этот момент WhiteWind 6 лет назад 0
К вашему сведению: если бы я мог, я бы также принял ваш ответ, поскольку он показал простую альтернативу, о которой я раньше не думал, но я выбрал вариант с обратным прокси, поскольку он открывает для меня больше возможностей. В любом случае, спасибо! suamikim 6 лет назад 0