我正在更改我网站的服务器.旧服务器的IP无法移动到新服务器.为了没有停机时间,我计划做以下事情,请有人确认它会起作用:
>设置新服务器并侦听新IP
>旧服务器将所有流量重定向到新IP
>更改DNS记录以指向新IP
我的逻辑告诉我,当我从旧框中重定向到新IP时,用户将不会在浏览器中看到域名,但会看到新的IP.有没有办法重定向到新IP并随HOSTNAME一起发送,以便用户在浏览器中看到域名?
我这样做是因为网站一直在使用,只是更改DNS设置不会这样做,因为在传播过程中新旧服务器之间不会同步数据库.
解决方法
这是适用于我的方法:
>将文件和数据库与新服务器同步.
>在切断之前执行重新同步.
>将DNS更改为指向新服务器.
>将来自旧IP的请求转发到新服务器,直到DNS传播完成.
以下是我将如何执行第4步:
我们将在Linux服务器上配置IPTable,以将端口80上的所有流量(这是默认的Web服务器端口)重定向到具有IP 122.164.34.240的服务器.第一步是设置Linux框以允许进行这种转发.打开终端窗口,以root用户身份登录并运行以下命令:
# echo 1 >/proc/sys/net/ipv4/ip_forward
下一步是告诉IPTables将流量重定向到新服务器:
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 122.164.34.240
这就是IPTables魔术发生的地方.通过第三步也是最后一步,我们告诉IPTables重写到新服务器端口80的连接的来源,看起来来自旧服务器.
# iptables -t nat -A POSTROUTING -p tcp -d 122.164.34.240 --dport 80 -j MASQUERADE
最后一步是必需的,因为如果我们不告诉新服务器的Web服务器连接来自客户端机器,它会认为它们来自旧服务器.