两个托管在不同地方的网络服务器可以共享同一个域名吗?

两个托管在不同地方的网络服务器可以共享同一个域名吗?

假设我有一个 WordPress 网站:

https://www.foobar.com

并且我想要在同一个域中的某个子目录中有一个 rails 应用程序的入口点:

https://www.foobar.com/rails_app

我知道如果 wordpress 应用程序和 rails 应用程序都托管在同一个盒子上,这是可能的,但如果它们托管在不同的盒子上,这是否可能?

我不想使用子域名,因为我试图允许从一个子域名到另一个子域名的 ajax 发布请求,而不必处理单源策略。

答案1

不完全是,但很接近。

带有 rails 应用程序的主机需要有自己独特的主机名。但您可以创建一个崇敬代理从主域到 rails 应用程序。

将以下内容添加到您的 Apache 虚拟主机www.foobar.com

ProxyPass           /rails_app    https://railsapp_server.foobar.com:3000/rails_app
ProxyPassReverse    /rails_app    https://railsapp_server.foobar.com:3000/rails_app

显然,您需要确保右侧的 URL 适合您的应用程序。

答案2

据我所知,不是 - 您需要将两个页面的 A 记录指向同一服务器。子域名之所以有效,是因为它是一组不同的 A 记录,可以指向 DNS 管理器中的另一个 IP 地址。

答案3

您需要从一台主机反向代理到另一台主机——任何现代网络服务器都可以轻松处理此问题。如果您使用共享主机执行此操作,您的网络主机可能不太适合这样做。

另一方面,您也可以在同一主机上运行 WordPress 和 Rails 应用程序。

答案4

我发现实现预期结果的最简单方法是在网络主机上编写一个代理,在服务器之间传递信息。即

  • Web 服务器向代理发出 AJAX 请求
  • 代理将请求逐字发送到应用服务器并等待响应
  • 应用服务器回复代理
  • 代理将回复转发给 Web 服务器

只有 Web 服务器和代理之间的流量是 AJAX。代理和应用服务器之间的流量只是常规网络流量。

相关内容