【问题标题】:Setup virtual hosts file to host the source code from remote server设置虚拟主机文件以托管来自远程服务器的源代码
【发布时间】:2013-03-13 23:20:34
【问题描述】:

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

现状:

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

必填:

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

阻塞点:

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

问题:

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

研究:

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

谷歌搜索的字符串:

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

服务器详情:

服务器 A:

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

  • 托管网站源代码

  • Apache 服务器

  • 操作系统:RHEL5

服务器 B:

  • 可通过 Intranet 和 Internet 访问

  • Apache 服务器

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

【问题讨论】:

  • 你看过ProxyPass指令吗?
  • 我在论坛上看到使用代理指令会导致安全漏洞...我不确定这是否属实...
  • 我会阅读更多关于 ProxyPass 指令的内容。据我了解,我还需要 ProxyPassReverse
  • 非常感谢...它可以工作,虽然它确实破坏了我的JS,但我现在知道我必须调整参数,因为请求没有正确发送...仍然关心是否有由于此解决方案,确实是一个安全漏洞
  • 如何将此帖子标记为已回答?

标签: linux apache virtualhost


【解决方案1】:

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

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

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

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

【讨论】:

  • 你是一个救生员。非常感谢
猜你喜欢
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多