1

非常感谢您对以下查询的支持

现在的情况:

我在 Linux Apache 服务器“A”上有一个 Web 应用程序(包含一个上传文档的模块),它只能通过 Intranet 进行 HTTP 编辑。

必需的:

需要另一台 Linux Apache 服务器“B”来托管相同的 Web 应用程序,同时仅在服务器“A”上维护源代码。服务器“B”可以通过 Internet 和 Intranet 进行 HTTP-ed。

阻塞点:

在当前情况下,我们无法直接在服务器“B”上托管网站(这似乎是合乎逻辑的解决方案)。

问题:

是否可以为这种要求设置 httpd.conf 文件的虚拟主机?

研究:

通常我的大部分发现都是关于部署负载共享/负载平衡解决方案的帖子(不是我的目标),或者在“A”和“B”之间设置双向同步过程(最后的解决方案)。

谷歌搜索字符串:

在两台服务器之间共享网站,在两台服务器上托管网站,虚拟主机到另一台服务器,在多台服务器上运行单个网站设置,在另一台服务器上为网站虚拟主机,在两台不同的服务器上托管一个网站,设置两台 linux 服务器来托管相同的服务器网站

服务器详情:

服务器 A:

  • 服务器IP:192.168.xxx.xxx(只能通过内网访问)

  • 托管网站源代码

  • 阿帕奇服务器

  • 操作系统:RHEL5

服务器 B:

  • 可通过 Intranet 和 Internet 访问

  • 阿帕奇服务器

  • 操作系统:与 A 相同(RHEL5)

4

1 回答 1

0

总结一下您现在可能发现的内容:不幸的是,有两件事称为代理。您感兴趣的称为反向代理,其中 B 将接受请求并将其转发给 A。客户端永远不会看到 A 甚至存在。几乎没有安全问题,具体取决于您查看的安全角度:

  1. 服务器 A 只看到来自 B 的请求,而不是原始客户端,因此您想要的任何基于 IP 的限制都应该在服务器 B 上配置。

  2. 通常提到的安全问题是(转发)代理将代表客户端向任意服务器请求事物,因此它掩盖了客户端的身份。只要您ProxyRequests Off禁用转发代理,我认为您无需担心这一点。

  3. 服务器 A 可能会意外泄露它的 IP,您可能对此感到不舒服。当 B 将其从 A 收到的客户端请求的答案传递回时,它不会查看有效负载。因此,如果您返回 HTML 文档,它们最好都只有相对路径。我认为这可能是您遇到的问题:如果您的代码仍然包含对 192.168.xy 的引用,那么这些对外部客户端不起作用。如果你正在改变路径(即你有类似的东西ProxyPass /somepath http://internal-server/otherpath),事情会变得更加复杂,所以尽量避免这种情况。(通常,您的后端应用程序需要了解其公开可见的 URI 是什么。如何做到这一点取决于应用程序。)

于 2013-03-24T17:25:40.010 回答