
我正在使用 Ubuntu 12.05.5 LTS 和 Apache 2.2.22 運行一個小型 Web 伺服器,最近遇到了這個問題:
對於虛擬機器上的 IIS 伺服器,我有以下反向代理配置:
<VirtualHost *:443>
SSLEngine on
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.1
allow from 192.168.
allow from 10.8.0
</Directory>
...
ProxyRequests Off
ProxyPreserveHost On
ProxyVia On
SSLProxyEngine on
<Location /AutodeskDM>
Order Deny,Allow
Deny from all
Allow from 192.168.
ProxyPass https://10.8.0.131/AutodeskDM
ProxyPassReverse https://10.8.0.131/AutodeskDM
</Location>
<Location /autodeskdm>
Order Deny,Allow
Deny from all
Allow from 192.168.
ProxyPass https://10.8.0.131/autodeskdm
ProxyPassReverse https://10.8.0.131/autodeskdm
</Location>
....
</VirtualHost>
這工作得很好,只允許來自 192.168 的連接。子網,如預期。
現在,當我在 ProxyPass 指令中使用相同的配置減去 SSLProxyEngine on 和 http 而不是 https 時,出現以下錯誤:
[error] [client 127.0.0.1] client denied by server configuration: proxy:http://10.8.0.131/AutodeskDM/
如果我添加
Allow from 127.0.
它當然有效,但可以從任何地方授予存取權限。
按照其他地方的建議(例如Apache反向代理存取控制) 也沒有影響。
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.
</Proxy>
仍然允許從任何地方訪問。
我在這裡缺少什麼?這是預期的行為嗎?如果是這樣,為什麼有和沒有 SSL 會有不同?
答案1
像往常一樣,另一個程序阻礙了。我讓 OpenVPN 偵聽連接埠 80 並在連接埠 8080 上將 http 請求代理程式到 apache。