Перенаправить псевдоним на разные серверы в зависимости от порта

У меня есть Oracle HTTP Server (который основан на Apache) с двумя приложениями на нем:

  • http://example.net/ -> открывает приложение Жизнь (порт по умолчанию 80)

  • http://example.net:7777/ -> открывает приложение Контрольная работа

Теперь мы хотим упростить URL-адрес, на самом деле он должен быть таким:

  • http://application -> открывает Life-Application http://example.net/

  • http://application-t -> открывает тестовое приложение http://example.net:7777/

Мы добавили записи DNS для application -> example.net и application-t -> example.net, однако они не могут указывать на определенные порты. (т.е. application-t -> example.net:7777 невозможно)

Я пытался настроить VirtualHost, но мне это не удалось. И http://application, и http://application-t всегда открывают Life-Application, что бы я ни пробовал.

Как настроить директиву VirtualHost? Или надо по-другому сделать?

0
0
445
1

Ответы 1

Параметры «ProxyPass» и «ProxyPassReverse» используются, чтобы указать Apache, как выполнять запросы прокси. Им требуются модули Apache «mod_proxy.so» и «mod_proxy_http.so», которые по умолчанию загружаются в RHEL5 и RHEL6, но убедитесь, что следующие строки в файле «/etc/httpd/conf/httpd.conf» не закомментированы, чтобы убеждаться. >

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

Попробуйте ниже конфигурации VirtualHost

http: // приложение -> открывает Life-Application http://example.net/

<VirtualHost *:80>

ServerName application
ServerAlias application
#DocumentRoot /var/www/html/application
ErrorLog /var/log/httpd/application-error_log
TransferLog /var/log/httpd/applicatin-access_log
ProxyPass / http://example.net/        
ProxyPassReverse / http:://example.net/ 

</VirtualHost>

http: // приложение-т -> открывает тестовое приложение http://example.net:7777/

<VirtualHost *:80>

ServerName application-t
ServerAlias application-t
#DocumentRoot /var/www/html/application-t
ErrorLog /var/log/httpd/application-t-error_log
TransferLog /var/log/httpd/application-t-access_log
ProxyPass / http://example.net:7777/         
ProxyPassReverse / http:://example.net:7777/ 

</VirtualHost>

надеюсь это работает

У меня не может быть двух <VirtualHost *:80> в одном конфигурационном файле. Открывается всегда "example.net". Два процесса apache не могут прослушивать один и тот же порт 80. Я попрошу ИТ-специалистов изменить запись DNS с Псевдоним на единственную запись. Я предполагаю, что тогда я могу использовать значение ServerName, потому что теперь оно всегда одно и то же.

Wernfried Domscheit 11.04.2018 14:56

Вы можете добавить два & lt; VirtualHost *: 80 & gt; в одном файле конфигурации с разными ServerName в одном Apache. Я могу поделиться ссылкой на видео на YouTube, если вам нужно

Venkat G 12.04.2018 15:54

Да, пожалуйста. Для меня это не сработало. Но я попробую еще раз. Возможно, мне нужно удалить значения DocumentRoot и ServerName из корневого уровня файла конфигурации.

Wernfried Domscheit 12.04.2018 16:55

Другие вопросы по теме