Apache2 混合正向和反向代理

Apache2 混合正向和反向代理

我升级了 apache2,现在它的行为有所不同。我想混合使用正向代理(只能从内联网访问)和反向代理(应该可以从互联网访问)。

实际情况是,在我的配置下,正向代理可以从互联网访问。我将正向代理移到了一个新的虚拟主机。因此,我尝试设置代理以阻止所有内容,并仅为反向主机设置代理。但是,正向代理仍然可用,但我无法连接到反向代理地址:“您无权访问此服务器上的 /s/。”

<VirtualHost *:80>
           SSLProxyEngine on

     ProxyRequests On

    <Proxy *>
            Deny from all
   </Proxy>
    <Proxy /s/>
            Allow from all
    </Proxy>

   ProxyPass /s/ http://internalwebserver/
   ProxyPassReverse /s/ http://internalwebserver/
</VirtualHost>

我该如何设置 apache ?是否可以在一个虚拟主机中设置正向和反向代理?

提前感谢 Simon

答案1

回答我自己的问题,ProxyRequest On 是罪魁祸首。这仅适用于正向代理。此外,启用此设置后,所有针对“普通”Web 服务器的请求都可以由代理处理。

当具有反向和正向代理时,需要在另一个端口上使用单独的 VirtualHost 作为正向代理(ProxyRequest 开启),而将反向代理留在正常 VirtualHost 中并且 ProxyRequest 关闭,这样也不会为 Web 服务器执行任何代理。

答案2

您的/s/代理有Deny from all指令。

尝试将允许列表限制为您希望 LAN 可以访问的代理:

Allow from 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8

并否认所有其他情况。

相关内容