Настройка проксирования в Nginx. Как сделать свой Cloudflare
Содержание
- 1 Зачем нужно проксирование?
- 2 Настройка проксирования nginx по типу Cloudflare
- 3 Стоимость услуг
Приветствую, господа. В прошлом посте я обещал рассказать, как настроить собственный проксирующий сервер. Это бывает нужно для того, чтобы сокрыть реальный 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 сайтов стоимость будет именно такой. В случае с бОльшим количеством — цена договорная, но разумеется она не линейно зависит от их количества.
Делаю быстро и хорошо, как и многие другие услуги, к примеру установку панелей управления, настройку серверов под сайты, оптимизацию серверов, настройку прокси, перенос сайтов, настройку бэкапов, решение проблем с нагрузкой, выяснение причин и устранение различных ошибок, и т д.
Также помогаю подобрать недорогие и мощные серверы для ваших проектов, часто есть возможность сократить в разы ваши расходы на серверы и хостинги, причем часто выиграв в мощности, производительности, стабильности и скорости. Об этом даже есть канал в телеграм Хостинг Эксперт
Комментарии (7):
3) сеонли забанил?
гуд)))
за что7 я — няша))
Он тебе сам ответил) Я согласен — за что его банить-то). Ну и как можно забанить, когда свободные комменты без реги.
1) Я не знаю как это называется, вроде это обычный http-заголовок. Точно не знаю как это настраивается. Смысл в том, что контент не отдается по какому-то доменному имени, которое отличается от домена сайта. Соответственно, если ты пытаешься проксировать чужой ресурс на какой-то свой домен — то работать ничего не будет.
2) да, всё точно так же работает, разницы нет.
Можно проксировать чужой сайт на https? + добавить свой код(html, js)?
Войдите или зарегистрируйтесь чтобы оставить комментарий
- Уруру! Я вызываю эльдорадо. Vpsadm возвращается. Но это пока неточно.
- Демократическое государство? Таких нет и никогда еще не было!
- К чему приводит фриланс? Где я оказался в конце 2020 года
- Новая мощная панель управления сервером — Fastpanel!
- Выбор хостинга по отзывам и рейтингам. Как это делать эффективно и продуктивно?
1) Что за политики, запрещающих отдачу контента по «левым» доменам?
2) https проксирует?