Pull to refresh

Как спасти сайт за 7 шагов и 20 минут

Спасаем сайт, находящийся на IP, который попал под ковровую бомбардировку Роскомнадзора.


Пост для не самых опытных пользователей, поэтому может содержать излишнюю конкретику, с точки зрения матерых админов.


Будем поднимать тунель с помощью haproxy.
Haproxy будет работать на уровне TCP. Этот метод хорош тем, что не надо переносить SSL ключи и вообще, возни минимум.


1. Покупаем за границей VPS с Ubuntu 16.04 LTS


Надо убедиться, что его IP не находится в блок-листе: http://blocklist.rkn.gov.ru


2. Ставим haproxy


sudo apt-get install haproxy

3. Настраиваем haproxy


Меняем содержимое файла /etc/haproxy/haproxy.cfg вот на такое:


global
        log /dev/log    local0
        log /dev/log    local1
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

defaults
        mode    tcp
        log     global
        balance leastconn
        timeout client      30000ms
        timeout server      30000ms
        timeout connect      3000ms
        retries 3

frontend in_http_server
        bind 0.0.0.0:80
        default_backend out_http_server
backend out_http_server
        server srv1 АЙПИ_СПАСАЕМОГО_САЙТА:80 maxconn 2048

frontend in_https_server
        bind 0.0.0.0:443
        default_backend out_https_server
backend out_https_server
        server srv1 АЙПИ_СПАСАЕМОГО_САЙТА:443 maxconn 2048

Не забудьте заменить АЙПИ_СПАСАЕМОГО_САЙТА.


4. Перезапускаем haproxy


sudo service haproxy restart

5. Проверяем что прокси работает


На локальной машине заносим в hosts IP созданного VPS и домен сайта. Проверяем браузером, что домен открывается.
После проверки, не забываем удалить.


6. Перекидываем DNS записи на этот VPS


7. Ждем рассасывания DNS


Рассасывание проверяем здесь: https://ping-admin.ru/free_test/

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.