将文件夹重定向到不同的服务器

Posted

技术标签:

【中文标题】将文件夹重定向到不同的服务器【英文标题】:Redirect folder to different server 【发布时间】:2011-01-25 05:43:37 【问题描述】:

我知道你可以将子域重定向到不同的服务器,但是你可以对文件夹做同样的事情吗?

假设我有 example.com。我可以将 mysubdomain.example.com 重定向到另一台服务器,但我可以将 example.com/mysubdomain 重定向到另一台服务器吗?我想在运行 php 的站点上的该文件夹中托管一个 rails 应用程序,同时仍保持良好的搜索引擎评级(通过不创建以我的经验识别为不同站点的子域)。

有什么帮助吗?

谢谢!

【问题讨论】:

在 serverfault.com 上问这个问题可能会更好。 【参考方案1】:

正如 brock Batsell 所建议的,可以代理请求的解决方案。您通常会在使用长轮询服务(如聊天)的 Web 应用程序中发现这种行为,并且需要将这些服务代理到第二个 Web 服务器以减少主服务器(通常是 apache + lighthtpd)的负载

这是基本用法(假设您使用的是 apache,而另一个 web-server 正在侦听 81 端口):

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

ProxyRequests Off
ProxyPreserveHost On
proxypass /folder-to-proxy http://localhost:81/folder
proxypassReverse /folder-to-proxy http://localhost:81/folder

<Proxy http://localhost:81/>
    Order Allow,Deny
    Allow from all
</Proxy>

只需将localhost 和端口号替换为您的第二个服务器主机和端口即可。

请注意,即使您不需要代理 ftp 流量,在 apache 中也必须启用 proxy_ftp_module

【讨论】:

【参考方案2】:

你只能通过代理来做到这一点,它可以将所有到 /mysubdomain 文件夹的请求转发到特定的 IP 和端口,获取响应,然后将响应透明地返回给用户。

如果您可以控制其配置文件,几乎所有主流 Web 服务器都会有一个模块来执行此操作。 (Apache 有 mod_proxy,nginx 有 HTTP Proxy,lighttpd 有自己的 mod_proxy。)

【讨论】:

+1 用于 mod_proxy,通常用于将一些流量切换到另一个网络服务器(例如,用于长轮询服务又名聊天的 lighttpd)

以上是关于将文件夹重定向到不同的服务器的主要内容,如果未能解决你的问题,请参考以下文章

Dockerized Nginx将不同的子域重定向到同一页面

如何让我的快速服务器使用 cors 将客户端重定向到不同的域?

重定向来自特定域的所有请求

HTTP 重定向到不同端口中的 HTTPS

服务工作者:当他点击通知时将用户重定向到不同的 url

根据 url 路径重定向到不同的服务器