我升级了 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
并否认所有其他情况。