下午先生,
我目前的设置是一个单一的网站,让我们打电话给http://production.com ,这是由端口80上的Nginx服务作为一个静态caching和Apache 8080端口上的本地主机,没有真正的幻想,这工作得很好。
我现在想要做的是使URL http://production.com/foobar包含来自外部URL的数据,我们将调用http://internal.com/ 。
我遇到的问题是,如果我浏览到http://internal.com/我会自动redirect到http://www.internal.com/forum/forum.php由于这是一个vBulletin论坛,有他们的拥有内部redirect以及不基于网站urlvariables的内容。 当然,如果我尝试通过Nginx代理它,我只是“转发”到../forum/forum.php URL。
那么,我将如何去解决这个问题呢? 有没有办法让这个redirect不可见,而不是让Nginx实际上按照它在地址栏中? 基本上是一个iframe,而不使用实际的iframe。 🙂
这是我现在尝试使用的Nginx代码片段:
location /foobar { proxy_pass http://internal.com/; proxy_redirect off; proxy_set_header Host $host; }
想法? 提前致谢。
我发现在这种情况下你基本上有两个不同的select。
正如Andrei Mikhaltsov所指出的那样,你要么使用ngx.lua模块,而要在任何HTTP响应中更改代理,这当然是相当恶梦的事情。
你对你“转发”的任何应用程序做了一些改变,在我们的例子中是一个论坛。
在我们的例子中,我们select了2号,基本上把它们放在同一个域名下,并对论坛做了一些修改。