Прозрачное проксирование для ваших сайтов

На данный момент на территории РФ могут возникнуть сложности в использовании зарубежных хостеров, например, Digital Ocean или Vultr. Их IP-адреса большими подсетями фильтруют провайдеры. Но что делать, если у вас на этом хостинге находятся действующие сайты и контент?

Можно, конечно, подключить к серверу дополнительный IP-адрес и привязать домен сайта на него, но не каждый хостер сможет такое организовать, а если и сможет, то очень большая вероятность того, что и новый IP-адрес уже заблокирован, т.к они в большинстве случаев блокируются подсетями.

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

Обычная схема прохождения трафика к вашему сайту не сложная: запросы от вашего браузера через DNS направляются сразу на IP-адрес вашего сервера, и если он заблокирован – ваш провайдер не пропустит его дальше себя.
Но если мы поместим в нашу цепь промежуточный (прокси) сервер, который имеет не заблокированный IP-адрес – то мы сможем дойти через него до конечного сервера с сайтом.


Рассмотрим некоторые простые варианты, использующие эту технологию.

Проксирование с помощью CloudFlare

CloudFlare – это довольно известный DNS/CDN сервис, который любезно предоставит вам бесплатное прозрачное проксирование. Для того, чтобы воспользоваться им нужно просто перенести ваш домен сайта на сервис и настроить его:

Т.к. CloudFlare многие используют для ускорения ваших DNS – промежуточный прокси почти не замедлит доступ к вашему сайту, а в некоторых ситуациях даже ускорит. Существуют и другие подобные сервисы (в том числи сугубо Proxy), но они могут быть не такими гибкими в настройках и стоить дороже.

  • Плюсы: Скорость, простота настройки
  • Минусы: Нужно переносить домен

Использование Anti-DDoS сервисов

Существующие сервисы защиты от DDOS (DDoS-Guard, Qrator, Project Shield) пропускают весь ваш трафик через свои сервера, и поэтому могут вам помочь с прохождением трафика на ваш сайт. Бонусом будет то, что они защитят ваш сервер от DDOS аттак, но, к сожалению, не бесплатно.

  • Плюсы: Защита от DDOS
  • Минусы: Большая стоимость

Использование своего прокси-сервера.

Если вы по какой-то причине не можете перенести свой домен на NS CloudFlare и у вас нет денег на Anti-DDOS и прокси сервисы – выход есть. Для этого вам можно подключить системного/сетевого администратора, который вам в силу своего опыта все красиво настроит и пробросит, но если вы хотите все сделать самостоятельно – просто арендуйте VPS у не заблокированного хостера с чистым IP, установите туда Nginx и настройте его по описанию ниже.

Желательно, чтобы ваш прокси-сервер находился поближе к целевому серверу. Подойдет любая VPS с любой ОС, но ниже мы рассмотрим настройку на базе Debian 9.
Подключитесь по SSH к серверу и обновите систему:

apt -y update
apt -y dist-upgrade

Установите NGINX:

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
rm nginx_signing.key
echo "deb http://nginx.org/packages/debian/ stretch nginx" >> /etc/apt/sources.list.d/nginx.list
echo "deb-src http://nginx.org/packages/debian/ stretch nginx" >> /etc/apt/sources.list.d/nginx.list

Удалите лишние файлы (в текущей роли Nginx они не понадобятся):

rm /etc/nginx/conf.d/*

Теперь вам нужно отредактировать файл с глобальными настройками Nginx:

nano /etc/nginx/nginx.conf

В текстовом редакторе вставьте настройки ниже в конец файла:

stream {
        server { #http
                listen 80;
                proxy_pass IP_REMOTE:80;
                proxy_timeout 5m; #таймаут между двумя идущими подряд операциями на клиентском соединении или соединении с проксируемым сервером
                proxy_connect_timeout 5m; #таймаут для установления соединения с проксированным сервером.
        }
        server { #https
                listen 443; 
                proxy_pass IP_REMOTE:443; 
                proxy_timeout 5m; 
                proxy_connect_timeout 5m; 
        }
}

где вместо IP_REMOTE вам нужно указать IP сервера, где у вас находится сайт. Чтобы сохранить изменения в файле нажмите Ctrl+X, затем Y и Enter.
Проверьте корректность конфигурации:

nginx -t

Если будет ответ:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

значит ошибок вы не допустили и можно перезагружать Nginx для того, чтобы изменения вступили в силу.

service nginx restart

Теперь вы можете направить домен на IP вашей новой VPS и ваш запрос пойдет сначала на нее, а она перенаправит его уже на ваш сервер с сайтом.

  • Плюсы: Свой сервер
  • Минусы: Нужно настраивать

Постскриптум

К сожалению меры выше являются временными, т.к. не исключено, что завтра провайдеры не заблокируют вам IP-адреса того же CloudFlare, DDoS-Guard или вашего личного прокси-сервера.

Комменты