+7 707 858 58 37
help@vpsadm.ru
Настройка проксирования в Nginx. Как сделать свой Cloudflare

Приветствую, господа. В прошлом посте я обещал рассказать, как настроить собственный проксирующий сервер.  Это бывает нужно для того, чтобы сокрыть реальный IP, на котором располагается сайт.  Многие знают такой сервис, как Cloudflare, позиционирующий себя как средство для защиты от атак, для ускорения сайтов с помощью кэширования. Так вот суть этого сервиса в том и заключается — они просто проксируют любые сайты через собственные сервера с помощью Nginx.  И я покажу как это можно сделать на любых серверах.

Зачем нужно проксирование?

К примеру, я вспомнил об этом, поскольку в Казахстане не так давно вступил в силу закон, запрещающий располагать сайты на kz-доменах не на казахстанских IP. То есть такие сайты обязательно географически должны располагаться в этой же стране. А поскольку казахстанские хостинги обходятся в разы дороже, нежели такие же ресурсы где-то в Европе или даже в России, то для решения такой задачи можно схитрить, разместив в Казахстане самый недорогой VPS, куда будут смотреть DNS вашего сайта, а сам сайт разместить где угодно, в любой точке мира на любых дешевых серверах.  И никакие проверки не докопаются до сути, потому что запросы к сайту  будет принимать сервер  по факту расположенный в Казахстане.  В этом есть смысл, поскольку это может сэкономить вам десятки долларов в месяц. И чем больше ресурсов вам требуется для сайтов, тем больше это будет иметь смысл.

Иногда люди используют это для того чтобы скрыться от блокировок РКН, или еще кого-то. Иногда используют для того чтобы угонять сайты, но от этого легко защититься с помощью политик, запрещающих отдачу контента по «левым» доменам, поэтому особо смысла в этом нет.

Настройка проксирования nginx по типу Cloudflare

Итак, если вы хотите сделать проксирование — вам понадобится любой, самый дешевый VPS с минимальной конфигурацией.  На него надо установить один только nginx. Больше ничего.   И для каждого сайта на этом nginx нужно создать конфигурацию такого вида:

server {
        server_name yoursite.com www.yoursite.com;
        charset off;
        index index.html index.php;
        access_log /var/www/httpd-logs/yoursite.com.access.log;
        error_log /var/www/httpd-logs/yoursite.com.error.log crit;
        set $root_path /var/www/yoursite.com;
        root $root_path;
       
        location / {
        
                proxy_pass http://2.2.2.2:80;
                proxy_redirect http://2.2.2.2:80 /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-Port $server_port;
                
        }
        listen 1.1.1.1:80;
}

Теперь немного пояснений. Итак, допустим ваш новый проксирующий сервер имеет айпи адрес 1.1.1.1, а ваш сервер где реально располагается сайт — 2.2.2.2
Самая важная часть в этом конфиге — это строка proxy_pass http://2.2.2.2:80;
Естественно домен yoursite.com нужно заменить на свой. На вашем сервере 2.2.2.2 не нужно делать абсолютно никаких настроек. Всё делается только на проксирующем nginx с адресом 1.1.1.1. В данном случае, я привел конфигурацию только для http. Поскольку ныне большинство сайтов работают на https, соответственно вам нужно будет создать конфигурацию под https, куда вы внесете кроме настроек проксирования также настройки сертификата.

listen тогда будет иметь вид listen 1.1.1.1:443; соответственно. Если же на вашем сервере 2.2.2.2 сайт уже работает на https, то вам и в директиве proxy_pass нужно будет указать proxy_pass https://2.2.2.2:443;

Но настройки https это другая история, в самом простом случае вам  нужно взять сертификаты и настройки с вашего имеющегося сервера 2.2.2.2

Ну и теперь, после того как вы всё настроили и проверили — остаётся лишь сменить в настройках ДНС-записей для вашего домена IP адрес с 2.2.2.2  на 1.1.1.1.

Вот собственно и всё.

Стоимость услуг

Я конечно же предоставляю такую услугу  и стоимость её по минимальному тарифу обойдется от 2000 руб. Но не всегда, всё зависит от количества сайтов, для которых нужно настроить проксирование.   Для 1-2 сайтов стоимость будет именно такой.  В случае с бОльшим количеством — цена договорная, но разумеется она не линейно зависит от их количества.

Делаю быстро и хорошо, как  и многие другие услуги, к примеру установку панелей управления,  настройку серверов под сайты,  оптимизацию серверов, настройку прокси, перенос сайтов, настройку бэкапов, решение проблем с нагрузкой, выяснение причин и устранение различных ошибок, и т д.

Также помогаю подобрать недорогие и мощные серверы для ваших проектов, часто есть возможность сократить в разы ваши расходы на серверы и хостинги, причем часто выиграв в мощности, производительности, стабильности и скорости.  Об этом даже есть канал в телеграм Хостинг Эксперт

Отправить ответ

Notify of
avatar
Константин
Гость

1) Что за политики, запрещающих отдачу контента по «левым» доменам?
2) https проксирует?

Константин
Гость

3) сеонли забанил?

seoonly.ru
Гость

за что7 я — няша))

seoonly.ru
Гость

гуд)))

Андрей
Гость

Правильно я понимаю, что letsencrypt нужно ставить на 1.1.1.1?
Или ставить на 2.2.2.2 и каждый раз менять на прокси-сервере после обновления сертификата?

Юлия
Гость

Спасибо за интересную статью, буду пробовать!

Руслан
Гость

Я правильно понимаю что таким способом можно скрыть хостера на котором размещен сайт?

Григорий
Гость

Я так понимаю это местная особенность для локальных сайтов.
Вообще интересная информация, возможно обращусь за услугами.

Sardorbek
Гость

Есть ваш контакт в телеграмм?

wpDiscuz