我尝试通过 Apache 的 ProxyPass 指令访问正在运行的 Webcit(Citadel 邮件服务器需要)。这只能在私有网络内使用端口 2000 时实现。
我的想法是拒绝所有人但只允许 10.8 网络(这是我的 VPN)。
Listen 2000
<VirtualHost *:2000>
ProxyRequests On
ProxyVia On
ProxyPass / http://localhost:2000
ProxyPassReverse / http://localhost:2000
<Proxy *>
Order Deny,Allow
Deny from all
Allow from 10.8
</Proxy>
</VirtualHost>
问题是,当 Webcit 在端口 2000 上运行时,它始终可以通过任何公共地址访问尽管有这些 VirtualHost 设置,我的服务器上仍可以运行它。但我无法在端口 80 上运行它,因为 Apache 在端口 80 上运行。我该怎么办?我想知道,为什么在这种情况下 Apache VirtualHost 配置会被忽略?
答案1
您正在尝试将 Webcit 和 Apache httpd 绑定到本地端口 2000。在您的设置中,Webcit 可以完全访问或根本无法访问,具体取决于哪个服务器首先保留端口。
将 Webcit 服务移至其他端口。然后从端口 2000 代理至 Webcit 服务端口。
然而,正如汉普顿所指出的,使用防火墙可能更有意义。