Итак, у меня есть конфигурация для apache, которая работает в 99% случаев.
Он проверяет значение заголовка в запросе и на основании этого перенаправляет на правильный URL-адрес версии API со статусом 307
.
Это работает для всех клиентов, которые правильно реализуют стек http. к сожалению, у меня есть приложение, которое не следует этому и преобразует все запросы POST
в GET
.
Итак, это proxy.conf
, который я получил прямо сейчас:
RewriteEngine On
RewriteCond %{HTTP:X-Android-Version} =660
RewriteRule ^/services/6/(.*)$ /services/internal/6/$1 [R=307]
RewriteCond %{HTTP:X-Android-Version} >661
RewriteRule ^/services/6/(.*)$ /services/internal/7/$1 [R=307]
ProxyPass /services/internal/7 http://mbe700:8080/services/6
ProxyPass /services/internal/6 http://mbe600:8080/services/6
И вот что меня интересует:
Возможно ли использовать прокси-сервер того же типа без использования правила перезаписи URL, поскольку это не работает в моем случае?
Оказалось, что это было проще, чем я предполагал. .. просто изменение флага в rewriterule, похоже, помогло.
RewriteEngine On
RewriteCond %{HTTP:X-Android-Version} =660
RewriteRule ^/services/6/(.*)$ /services/internal/6/$1 [P]
RewriteCond %{HTTP:X-Android-Version} >661
RewriteRule ^/services/6/(.*)$ /services/internal/7/$1 [P]
ProxyPass /services/internal/7 http://mbe700:8080/services/6
ProxyPass /services/internal/6 http://mbe600:8080/services/6