Linux

Apache 作為動態 IP 的代理轉發器

  • July 30, 2013

我在網上四處尋找,但我不知道如何做我正在尋找的東西。所以我正在尋找的是一個代理,它將根據我在 url (GET) 中輸入的 IP 地址轉發 HTTP 查詢。

因此,例如:

我請求: http://host/query/IP_A 它應該做的是: ME => GET HTTP myhost/query/IP_A => GET IP_A ===> GET HTTP 查詢到 IP_A 並返回給發送者!

我一直在閱讀 proxypass、reverseproxy、proxymatch 和 mod_rewrite ……但我不知道為什麼它根本不起作用!而且我沒有日誌……當調試時間到來時,這並不酷!:-(

這是我的實際配置:

<VirtualHost *:80>
ServerName myServer
DocumentRoot /home/me/www/htdocs
#       RewriteCond ^.*/query/(.*)
#       RewriteRule (.*) http://$1 [P]
ProxyPassMatch ^.*/query/(.*) http://$1
ErrorLog logs/me-error_log
CustomLog logs/me-access_log debug
</VirtualHost>

這是一個靜態工作範例:

ProxyPass / http://IP_A

ProxyPassReverse / http://IP_A

因此,當我訪問網路伺服器時,它會直接訪問 IP 並向我返回 http 響應。

謝謝你的幫助!

您的案例有點不清楚。這聽起來很像一個普通的網路代理(它接受來自您的瀏覽器的請求,然後代表您的瀏覽器從遠端站點獲取內容)。

但是做你想做的事:

<VirtualHost *:80>
   RewriteRule ^/query/(.*) http://$1 [P]
<VirtualHost *:80>

這將獲取任何內容/query/並將其附加到http://,然後為結果發出代理請求。正如@EEAA 所說,這是一場安全噩夢(有人可以使用你的伺服器攻擊遠端系統),但它會做你想做的事。

您可能想閱讀有關使用 Apache 作為轉發代理的資訊(如mod_proxy文件中所述,或例如此處),並查看是否滿足您的需求。

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