Reverse-Proxy
Apache基於header的反向代理
所以我有一個適用於 99% 情況的 apache 配置。它正在檢查請求中的標頭值,並基於該值重定向到具有
307
狀態的正確 API 版本 URL。這適用於正確實現 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 重寫規則的情況下使用相同類型的 proxypass,因為這在我的情況下實際上不起作用?
事實證明這比我想像的要容易得多……只是改變重寫器上的標誌似乎就可以了。
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