Apache-2.2

如何使用 LAMP 堆棧轉發使用特定標頭或從特定 IP 地址接收的請求

  • August 11, 2014

我們有一個正在大力開發的 Symfony2 應用程序,並且剛剛簽署了我們的第一個生產客戶端。

我們想暫時將此客戶端放在另一個穩定的集群上,同時繼續在目前集群上進行大量開發。然而,我們希望這整個情況對客戶來說是不可見的。

所以,我想使用他們的特定請求標頭授權(首選)或他們的 IP 地址(如果標頭不可能)有選擇地從我們的主要 www 網路伺服器轉發來自該客戶端機器的請求到我們穩定集群的網路伺服器。

我在看 mod_proxy,這會是實現這一目標的最佳工具嗎?還要別的嗎?如有必要,我可以在應用程序中執行此操作,但這會為每個請求增加一些不必要的成本。如果 AWS 提供了我不知道的任何其他工具,我們就在 AWS 上進行了設置。

非常感謝!

由於您想有選擇地進行轉發,因此您需要 mod_proxy 和 mod_rewrite,因為 mod_proxy 本身只能通過 URL 上下文代理

您可以基於遠端 IP 進行代理:

RewriteCond %{REMOTE_ADDR} ^12.34.56.78$
RewriteRule ^(.*)$  http://cluster/$1  [P]

或基於登錄(假設基本身份驗證):

RewriteCond %{REMOTE_USER} ^username$
RewriteRule ^(.*)$  http://cluster/$1  [P]

還有一種%{HTTP:header_name}情況是它是自定義標題:

RewriteCond %{HTTP:my_custom_header_name} ^my_custom_header_value$
RewriteRule ^(.*)$  http://cluster/$1  [P]

引用自:https://serverfault.com/questions/619421