
我有一個運行 Arch Linux ARM 的 Raspberry Pi,我將其用作 HTTP 伺服器,使用 Apache/2.4.29 (Unix)。最近,我一直在嘗試將這台機器配置為轉發代理,以便在使用位於邪惡防火牆後面的筆記型電腦時使用開瓶器或 proxytunnel 連接到互聯網。所以我新增了一個具有以下配置的虛擬伺服器:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName proxy.mydomain.com
ErrorLog "/var/log/httpd/proxy-error_log"
CustomLog "/var/log/httpd/proxy-access_log" common
#SetEnv force-proxy-request-1.0 1
#SetEnv proxy-nokeepalive 1
ProxyRequests On
ProxyVia Block
AllowCONNECT 443 563 22 XYZ
<Proxy *>
Require ip XXX.XXX.XXX.XXX
</Proxy>
# The reverse proxy works, but the forward doesn't
#ProxyPass /test https://google.it
</VirtualHost>
除此之外,我還有另外兩台虛擬伺服器。有趣的是,如果代理程式是唯一啟用的虛擬主機,則代理可以工作,但如果我啟用另一個虛擬主機,則代理將不再工作。
當代理程式不起作用時,我無法將其與firefox一起使用(這表示代理拒絕連接),也無法將其與corkscrew一起使用(這表示代理無法連接到伺服器:方法不允許);另外,在這種情況下,apache 日誌檔案顯示「客戶端被伺服器設定拒絕:/etc/httpd/htdocs」。但是,當我僅啟用代理虛擬主機時,一切正常,因此這不是開瓶器的問題。有人知道為什麼嗎?謝謝。
答案1
您無法比對轉送代理程式的 ServerName 或 ServerAlias。
您可以查看 sslh 或 sshttp,它們是 ssh/http(s) 多工器,可以在同一連接埠上使用這兩種協定。
乾杯