Назад | Перейти на главную страницу

Перенаправить порт на другую машину на FreeBSD 6.2

Я нахожусь в процессе выключения старого сервера 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 это пример того, как это сделать.