我非常感谢您对以下调查的支持
现状:
我在Linux Apache服务器“A”上有一个Web应用程序(包含一个上载文档的模块),只能通过Intranet进行HTTP编辑。
必需:
另一个Linux Apache服务器“B”需要托管同一个Web应用程序,同时仅在服务器“A”上维护源代码。服务器“B”可以通过互联网和内联网进行HTTP编辑。
阻止点
在目前情况下,我们无法直接在服务器“B”上托管网站(这似乎是合乎逻辑的解决方案)。
问题:
是否可以根据此要求设置httpd.conf文件的虚拟主机?
研究
通常我的大部分调查结果都是关于部署负载分担/负载平衡解决方案的帖子(不是我的目标),或者在“A”和“B”之间设置双向同步过程(最后的解决方案)。
用Google搜索字符串:
在两台服务器之间共享网站,两台服务器上的主机网站,另一台服务器上的虚拟主机,多台服务器上的单一网站设置,另一台服务器上的网站虚拟主机,两台不同服务器上的主机网站,设置两台linux服务器托管同一个网站
服务器详细信息:
服务器A:
服务器IP:192.168.xxx.xxx(仅可通过Intranet访问)
托管网站源代码
Apache服务器
操作系统:RHEL5
服务器B:
可通过内联网和互联网访问
Apache服务器
操作系统:与A(RHEL5)相同
答案 0 :(得分:0)
总结一下你现在可能已经找到的东西:不幸的是,有两件事叫做代理。您感兴趣的称为反向代理,其中B将接收请求并将其转发给A.客户端永远不会看到A甚至存在。根据您所看到的安全角度,几乎没有安全问题:
服务器A只能看到来自B的请求,而不是原始客户端,因此应在服务器B上配置您想要的任何基于IP的限制。
通常提到的安全问题是(转发)代理会代表客户端询问任意服务器的内容,因此它会掩盖客户端的身份。只要您将ProxyRequests Off
设置为禁用转发代理,我认为您不必担心这一点。
服务器A可能会意外泄露您的IP,您可能会对此感到不舒服。当B将对从A收到的客户端请求的回复传回时,它将不会查看有效负载。因此,如果您返回HTML文档,它们最好只有相对路径。我认为这可能是您遇到的问题:如果您的代码仍然包含对192.168.x.y的引用,那么这些将不适用于外部客户端。如果你正在改变路径(即你有ProxyPass /somepath http://internal-server/otherpath
之类的东西),事情变得更加复杂,所以尽量避免这种情况。 (一般情况下,您的后端应用程序需要了解其公开可见的URI是什么。如何执行此操作取决于应用程序。)