我正在closures一个旧的FreeBSD 6.1服务器,但是我需要将80和443的端口replace成它的replace端口,而我等待那些cachingDNSlogging的顽皮的ISP比我的TTL更长时间。
我该怎么做?
L7解决scheme:
您可以使用nginx作为反向代理,并使用如下简单configuration将所有来自旧IP的请求redirect到新的:
server { listen 80; listen 443 default ssl; server_name www.YOURDOMAIN.com YOURDOMAIN.com; #SSL SETTING MUST BE HERE location / { proxy_pass http://NEW_IP_HERE/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
L4解决scheme:
pf.conf文件:
rdr on rl0 proto tcp from any to YOUR_OLD_IP port 80 -> YOUR_NEW_IP rdr on rl0 proto tcp from any to YOUR_OLD_IP port 443 -> YOUR_NEW_IP
不要忘记用您的网卡名称replacerl0
然后做
# kldload pf # pfctl -f /etc/pf.conf # pfctl -e
用Apache,你可以做这样的事情。
<VirtualHost *:80> Redirect permanent / http://new.domainname.fr/ ServerName *.domainame.fr ServerName domainame.fr </VirtualHost>
使用子域将强制一个新的DNS请求。 以后你可以强制从新到www的redirect。
但也许有相同的域名,你只是在等待DNS更新。 那么HTTPredirect将不起作用,并且一些iptable转发可能是有用的。
ipfw add divert 80 tcp from any to ${my_ip} 80 via ${local_if} in ipfw add divert 443 tcp from any to ${my_ip} 443 via ${local_if} in
或者你也可以把一个空白页面:
The site is moving, you have to update your DNS to IP_ADDRESS.
祝你好运
设置代理,或创build简单的HTTP“位置:”redirect。 越简单 – 越好:暂时的,不要浪费时间:)
看看NetCat,它可以监听一个端口,redirect到另一个服务器上的另一个端口
http://www.debian-administration.org/articles/58是如何做到这一点的一个例子。