Задать вопрос
@AlexVWill

Как правильно перенаправить запрос через Apache2 reverse proxy?

Есть https://alpha.example1.com:80/?XYZ/ к которому надо обращаться по HTTPS на 80 порту (так надо, это не суть), но не напрямую, а через https://beta.example2.com/?ABC/
Прямое обращение к https://alpha.example1.com:80/?XYZ/ проходит нормально, все работает. Пытаюсь настроить реверс прокси для проксирования с https://beta.example2.com/?ABC/
Конфиг

<VirtualHost *:443>
        ServerName beta.example2.com
        SSLProxyEngine on
        ProxyHTMLEnable  On
        ProxyHTMLInterp  On
        <Location /?ABC>
                ProxyPass https://alpha.example1.com:80
                ProxyPassReverse https://alpha.example1.com:80
                SetOutputFilter proxy-html
                ProxyHTMLURLMap /?ABC/ /?XYZ/
        </Location>
        ErrorLog ${APACHE_LOG_DIR}/error-beta.log
        CustomLog ${APACHE_LOG_DIR}/access-beta.log combined
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/beta.example2.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/beta.example2.com/privkey.pem
</VirtualHost>


В логах вижу, что alpha.example1.com запрос принимает, но по пути
/?XYZ/
куда то девается. Вопрос - как настроить Апач, чтобы он полностью, весь запрос с относительными путями проксировал? Вроде задачка несложная, но крутил и так, и эдак (конфиг это результат часового кручания), и что-то ничерта не срабатывает, и относительный URL куда то пропадает.
  • Вопрос задан
  • 25 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dodo512
https://site.ru/path/?query
Location и ProxyPass работают только с /path/, а GET-параметры не участвуют в сравнении с шаблоном.
Сравнить GET-параметры с шаблоном позволяет mod_rewrite.
RewriteEngine On

RewriteCond %{QUERY_STRING} ^ABC/$
RewriteRule ^/$ https://alpha.example1.com:80/?XYZ/ [P]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы