将文件夹重定向到不同的服务器
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将不同的子域重定向到同一页面