网站迁移到新服务器时出现 DNS 问题

网站迁移到新服务器时出现 DNS 问题

我有一个遗留系统,我正在尝试对其进行重大的配置更改,但没有找到干净地进行更改的方法。

我继承的状态包括托管在两台应用服务器上的网站,这两台应用服务器位于负载均衡器后面(每台服务器托管一个 LAMP 堆栈)。域的 A 记录 (example.com) 指向均衡器,'www.' 的 CNAME 条目也是如此。

现在,我想将此网站移动到另一台我已经设置好并准备就绪的服务器上,这通常很简单;但是,我遇到的问题是,当前为该网站提供服务的服务器还为来自同一“example.com”和“www.example.com”条目的子目录的其他应用程序提供服务。

我希望的情况如下:
   www.example.com 和 example.com 指向服务器 A
   www.example.com/scripts... 和 example.com/scripts... 指向当前负载均衡器

如果服务最初是在子域中设置的,这将是简单的,但事实并非如此,并且对于大量客户来说,迁移将非常痛苦。

我找不到一个优雅的方法来做到这一点。有人有什么建议吗?


更新:

需要澄清的是,客户端构建的应用程序通过 SSL 连接以编程方式访问 /scripts/... 目录中的产品(这是一种接收查询字符串并返回 XML 的服务)。这对解决方案有影响吗?

答案1

您不能为主应用程序设置子域名吗?比如 www2.example.com(或者将子域名全部删除,只保留 example.com),然后从站点根目录重定向到新子域名?如果您使用 .htaccess 进行重定向,则可以将除 /scripts 之外的所有内容重定向到新服务器。

.htaccess 文件看起来像这样:
RewriteEngine on
RewriteCond $1 !^scripts
RewriteRule (.*)http://www2.example.com/1 美元 [右=301,左]

上面的 301 代码指定重定向是永久性的;如果您担心排名下降,搜索引擎会喜欢这个。此外,此代码应将用户重定向到新 URL 上的等效页面,以便书签和其他指向旧 URL 上的页面的链接仍然有效。(但请先测试)

答案2

是的 - 有点麻烦。对于长期解决方案,您可能应该努力将其他应用程序移至其自己的站点。对于临时解决方法,您可以在负载平衡器或原始 LAMP 服务器上使用重定向到新站点,直到您可以更改 www 记录。

答案3

在新服务器上设置反向代理,这将使所有对某个 URL/URI 的请求都转发到旧服务器。

显然,您必须为旧服务器设置单独的域,但这会保留 URL。

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

<Location /legacy-app/>
    ProxyPass http://oldserver.example.com/legacy-app/
    SetEnv force-proxy-request-1.0 1
    SetEnv proxy-nokeepalive 1
</Location>

相关内容