2016-01-22 80 views
0

我有两台服务器。例如,让我们称它们为域名为www.server-a.com的SERVER-A和域名为www.server-b.com的SERVER-B。我的代码库是用magento和laravel编写的。两个域或子域之间的通信没有url重写

现在我的要求是,当我访问www.server-a.com/example时,它实际上是从www.server-b.com/example呈现页面而无需重写URL。

重定向是一个不错的选择,但由于我不能阻止当前的网址,因为很多seo都与它有关,所以我想创建一个备用选项。

我检查了很多这种沟通的选项,但从某种角度或其他角度看,所有选项似乎都不完整。 检查的选项有:

  1. 通过IFRAME加载外部页面。
  2. 使用php fopen(www.server-b.com)。
  3. 使用jsonp或document.domain进行CORS通信。
  4. 的想法告诉了两个服务器之间实现第三层可以让他们通过内部沟通本身(与node.js的等帮助 - >仍试图找出在那里我可以用这个去) 等

但他们都没有给我我需要的决议。是他们真正的一种方式,我只需在url中输入www.server-a.com/example,而加载的页面实际上来自www.server-b.com/example,而无需重写url或让用户知道他有离开他登陆的原址。

注意: - 在这种情况下,我是两台服务器的拥有者。另外,可以根据需要将单独的域更改为子域。请随时对基本配置进行任何调整以达到要求。

回答

0

国防部代理

在服务器A上apache配置

ProxyPass /example http://www.server-b.com/example 
ProxyPassReverse /example http://www.server-a.com/example 

第一行:在服务器一个的每个请求/例子进行重定向到http://www.server-b.com/example 第二行:当服务器-B应答请求,网址显示将是http://www.server-a.com/example

不要忘记,你将需要mod_proxy在apache上安装并启用。

+0

谢谢Joao。我也看过这种方法。但不知道它是否会重写网址。所以你现在已经说清楚了。现在的问题是我有nginx。所以需要看看nginx和apache之间是否允许mod_proxy。无论如何非常感谢答复。 –