Назад | Перейти на главную страницу

Переход от mod_rewrite / несколько портов на одном IP-адресе к нескольким IP-адресам

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

Это наша текущая установка: В dnsmgmt у нас есть несколько псевдонимов CNAME: 'intranet', 'dev', 'production' и т. д., все они указывают на servername.ourdomain.lan.. Затем у нас есть запись хоста (A) для имени сервера, указывающая на его статический IP-адрес.

Затем у нас есть каждая версия приложения для интрасети с собственным экземпляром httpd плюс один для «интрасети». Теперь в конфигурационном файле интрасети он прослушивает порт 80 (у других есть свои собственные порты) и использует mod_rewrite для перенаправления трафика с псевдонимов на то же самое, но с добавленным специальным портом. Таким образом, если вы перейдете в http://dev/, внутри это http://dev:1234/ но для пользователя это похоже на то, что он ввел. У нас также есть версии некоторых из них для экстранет, поэтому вы можете получить доступ вне сети, используя номер порта, если хотите.

Было бы неплохо, если бы мы избавились от слоя mod_rewrite по следующим причинам:

  1. он маскирует важную информацию из mod_perl для целей отладки, такую ​​как исходный IP-адрес, с которого исходит запрос (отображается только IP-адрес сервера) - может использовать другой модуль для получения этой информации
  2. когда служба интрасети не работает, все версии приложения недоступны, поэтому:
    1. любые изменения в этой услуге должны производиться в нерабочее время
    2. более опасно, если что-то повлияет на службу интрасети
  3. это больше накладных расходов на запрос и при запуске
  4. это больше кода, который нужно просмотреть, если возникнут проблемы или необходимо внести изменения

Возможно, я изначально настроил его только таким образом, потому что я не знал, что есть другой способ - вероятно, нашел справку / документацию, которые больше относились к хостинг-провайдеру, чем к внутреннему серверу интрасети.

Я бы хотел это сделать:

  1. добавить больше IP-адресов, по одному на каждую услугу
  2. настроить httpd.confs наших приложений интрасети для прослушивания порта 80 их новых IP-адресов (или еще лучше, порта 80 их псевдонимов)
  3. замените псевдонимы CNAME записями хоста (A), которые указывают на новые IP-адреса, а не servername.ourdomain.lan.
  4. настроить наш маршрутизатор для перенаправления запросов экстрасети на соответствующий IP, а не порт
  5. удалите CNAME для интрасети и выключите ее

я считать это должно позволить использовать ту же службу браузера как внутри, так и снаружи, что и раньше.

У меня вопрос: есть ли у этой настройки какие-либо недостатки / возможно ли это сделать таким образом / это разумно? Я никогда раньше не пробовал запускать несколько внутренних IP-адресов. Не испортит ли это что-нибудь, связанное с нашей внутренней сетью? Наш экстранет? Наш сервер вообще? Наша сеть в целом?

Есть по крайней мере одна ошибка:

По какой-то причине добавление IP-адреса, похоже, приводит к тому, что определенные программы (среди них SQL Server, httpd, dns, lsass) привязывают (иногда) к ним соединения, хотя я явно не сообщил этим службам о новом IP-адресе (в Фактически, httpd настроен на Listen intranet: 80 и Listen dev: 12222, поэтому я не уверен, почему он привязан к чему-либо, кроме этих имен). Возможно, они выполняют какую-то балансировку нагрузки, хотя балансировка сетевой нагрузки не Не отмечен в свойствах TCP / IP.