Обратный прокси-сервер два сервера на основе subpath
Вопрос Апача. Должно быть, что-то простое, но я терплю неудачу.
Я пытаюсь настроить apache в качестве обратного прокси-сервера для двух серверов позади него. Хитрость заключается в том, что единственная разница в регистрации правила прокси-сервера-это подпут.
Моя идея такова:
mydomain.com -> localhost:8083
mydomain.com/api -> localhost:8080/api
В настоящее время мой конфиг таков:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName mydomain.com
ServerAlias www.mydomain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/
ProxyPass /api http://localhost:8080/api #already tried with slashes on both first and second parameters
ProxyPassReverse /api http://localhost:8080/api #already tried with slashes on both first and second parameters
</VirtualHost>
Но /api не работает, он продолжает посылать запрос на 8083. Есть идеи, почему?
Спасибо за внимание
1 ответ:
Попробуйте выполнить' / api 'ProxyPass+ProxyPassReverse перед'/'. Я сильно подозреваю, что " / "действует как ловушка, и вы никогда не доберетесь до дела "/api". Это объясняет, почему вы всегда идете к 8083, который является ' / ' случаем.
<VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ServerName mydomain.com ServerAlias www.mydomain.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass /api http://localhost:8080/api #already tried with slashes on both first and second parameters ProxyPassReverse /api http://localhost:8080/api #already tried with slashes on both first and second parameters # do this last... ProxyPass / http://localhost:8083/ ProxyPassReverse / http://localhost:8083/ </VirtualHost>