Привет, я запускаю несколько приложений на одном компьютере, например Plone, который использует сервер приложений ZOPE, который работает на порту 8080, и Tomcat, на котором размещено несколько веб-приложений и работает на порту 8081.
Я хочу перенаправить весь свой входящий трафик с сервера apache, который работает на порту 80, на этот сервер, чтобы внешний мир видел только порт 80 по умолчанию apache. Я пробовал много конфигураций для того же, но ни одна из них, похоже, не работает для оба сервера, но да индивидуально, если я настраиваю его работу безупречно. Таким образом, используется только одна конфигурация, а другая не имеет никакого эффекта.
Моя конфигурация выглядит так: Ссылка Pastebin
Я также пробовал со следующей конфигурацией:
<VirtualHost *:80>
ServerName web.url.in
ProxyPreserveHost On
ProxyPass /MNCD2016 http://web.url.in:8081/MNCD2016
ProxyPassReverse /MNCD2016 http://web.url.in:8081/MNCD2016
RewriteEngine on
RewriteRule ^/$ http://web.url.in/MNCD2016
</VirtualHost>
<VirtualHost *:80>
ServerName web.url.in
ProxyPreserveHost On
ProxyPass / http://web.url.in:8080/
ProxyPassReverse / http://web.url.in:8080/
RewriteEngine on
RewriteRule ^/$ http://web.url.in/ckpw
</VirtualHost>
Проблема в том, что конфигурация работает только для одного из портов, а не для обоих. Например, если правило перезаписи Plone указано выше, оно будет иметь приоритет, а другая конфигурация tomcat работать не будет. По отдельности они работают без сбоев.
Как я могу заставить их работать одновременно на обоих серверах (Zope, Tomcat), в будущем может быть еще больше. Таким образом, я могу перенаправить весь входящий запрос от apache на эти серверы, и внешний мир должен видеть только apache спереди, а не эти серверы.
Это ссылка на сайт за которым я следил при настройке Plone.
Вы не хотите иметь несколько блоков VirtualHost с одинаковым значением ServerName. Вместо этого вы хотите иметь один блок VirtualHost для каждого ServerName и использовать ProxyPass или RewriteRule для маршрутизации трафика на соответствующие серверные ВМ. Вот пример использования ProxyPass:
<VirtualHost *:80>
ServerName web.url.in
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
ProxyPass /MNCD2016/ http://web.url.in:8081/MNCD2016
ProxyPassReverse /MNCD2016/ http://web.url.in:8081/MNCD2016
ProxyPass / http://web.url.in:8080/
ProxyPassReverse / http://web.url.in:8080/
</VirtualHost>