Apache 反向代理基於位置的存取控制不起作用

Apache 反向代理基於位置的存取控制不起作用

我正在使用 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。

相關內容