Я нахожусь в процессе выключения старого сервера FreeBSD 6.1, но мне нужно перенести 80 и 443 на его замену, пока я жду тех непослушных интернет-провайдеров, которые кэшируют записи DNS дольше моего TTL, чтобы они начали действовать вместе.
Как мне это сделать?
С apache вы можете сделать что-то подобное.
<VirtualHost *:80>
Redirect permanent / http://new.domainname.fr/
ServerName *.domainame.fr
ServerName domainame.fr
</VirtualHost>
Использование поддомена приведет к новому DNS-запросу. Позже вы можете принудительно перенаправить с нового на www.
Но, возможно, есть такое же доменное имя, и вы просто ждете обновления DNS. Тогда перенаправление HTTP не будет работать, и может пригодиться перенаправление 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.
Удачи
Решение L7:
Ты можешь использовать nginx в качестве обратного прокси-сервера и перенаправлять все запросы со старого IP-адреса на новый с простой конфигурацией, например:
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:
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
Не забудьте заменить rl0
с именем вашей сетевой карты
Тогда сделай
# kldload pf
# pfctl -f /etc/pf.conf
# pfctl -e
Настройте прокси-сервер или создайте простое перенаправление HTTP "Location:". Чем проще - тем лучше: временно, не теряйте времени зря :)
Взгляните на NetCat, он может прослушивать порт, перенаправлять на другой порт на другом сервере
http://www.debian-administration.org/articles/58 это пример того, как это сделать.