Home » Как разместить сайт с Cloudflare и Nginx на Ubuntu 24.04
Как разместить сайт с Cloudflare и Nginx на Ubuntu 24.04

Как разместить сайт с Cloudflare и Nginx на Ubuntu 24.04

Наконец-то решил выкатить пошаговый гайд: как разместить свой сайт с Cloudflare и Nginx на Ubuntu 24.04. Почему это вообще важно? Потому что надоело платить за готовые панели и зависеть от хостинга, а хочется управлять сервером самостоятельно, чтобы всё под контролем, быстро, безопасно и с кайфом автоматизации. В этом посте — минимально воды, максимально практики: от “что это вообще такое” до скриптов и шаблонов. Будет чуть гиковщины, неожиданных трюков и пара суровых историй из практики — чтобы обойти косяки ещё на старте.

Как это работает?

  • Cloudflare — это не просто ускоритель сайта, а ещё и бесплатная защита от DDoS, кэширование и даже бесплатный SSL. По факту, он выступает как реверс-прокси между вашим сайтом и внешним миром.
  • Nginx — любимый веб-сервер всех гиков (и не только). Лёгкий, быстрый, гибкий как гибкий роутер.
  • Ubuntu 24.04 — свежий LTS, оптимальный для продакшна прямо сейчас.

Вся магия работает так: запрос уходит сначала в Cloudflare, тот фильтрует всякий мусор, шифрует-трафик и пересылает к Nginx на вашем VPS/Dedicated — и только тут сайт действительно обрабатывает запросы.

Как быстро и просто всё настроить?

Смотри, базовые шаги:

  1. Зарегистрироваться на Cloudflare (если ещё нет аккаунта).
  2. Создать сайт, добавить свой домен — Cloudflare даст свои NS-записи.
  3. Указать NS домена на Cloudflare (это делается у регистратора домена).
  4. Поднять на сервере Ubuntu 24.04 свежий Nginx.
  5. Настроить свой сайт (виртуальный хост и т.д.).
  6. Разрешить Cloudflare-IP в firewall (ибо они будут бомбить ваш сервер).
  7. Улучшить безопасность, настроить SSL, кэширование и автоматизацию.

Примеры команд для Ubuntu 24.04 с Nginx


sudo apt update && sudo apt upgrade -y
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
sudo ufw allow 'Nginx Full'

Вот так создаём простейший виртуальный хост (пример для /etc/nginx/sites-available/mysite):


server {
listen 80;
server_name mysite.ru www.mysite.ru;
root /var/www/mysite;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}

Активировать и проверить:


sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Дальше — в Cloudflare: включай режим “Full (Strict) SSL” и можно получить реальный бесплатный сертификат. На сервер — можно закинуть Origin Certificate прямо с Cloudflare (их не принимают браузеры, но для связки CF <-> Nginx — идеально).

Таблица: сравнение подходов защиты сайта

Решение SSL Защита от DDoS Кэширование Автоматизация Минусы
Cloudflare + Nginx + Бесплатно + Включено + Гибко + API/скрипты Отдаёт IP Cloudflare, хлопоты с реальным IP клиента
Просто Nginx + LetsEncrypt – Только fail2ban/iptables + Только на стороне сервера + Скрипты Слабая против DDoS
Apache + Certbot + Бесплатно – Нет + mod_cache – Мало API Менее производительно

Похожие решения и альтернативы

  • Haproxy + Cloudflare — если нужна балансировка и отказоустойчивость.
  • OpenResty — если Nginx нужен с Lua на борту.
  • Traefik — если хочется автоматизации для Docker и auto SSL.
  • Fastly или Akamai — CDN-альтернативы (дороже, но иногда нужно).

Автоматизация, скрипты и интересные фишки

  • Cloudflare API позволяет:
    • Динамически менять DNS-записи (Cloudflare API).
    • Включать/выключать Under Attack Mode в одно касание (python-cloudflare).
  • У Nginx куча модулей для кэширования, ограничения по IP, rate limiting на ура.
  • Можно автоматизировать деплой через ansible или bash-сценарии. Вот мини-шаблон для получения Origin Certificate Cloudflare:


sudo apt install curl jq -y
export CLOUDFLARE_EMAIL="[email protected]"
export CLOUDFLARE_API_KEY="TOKEN"
curl -X POST "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/origin_tls_client_auth/hostnames" \
-H "X-Auth-Email: $CLOUDFLARE_EMAIL" \
-H "X-Auth-Key: $CLOUDFLARE_API_KEY" \
-H "Content-Type: application/json" \
--data '{"hostnames":["mysite.ru"]}'

  • Скрипты можно интегрировать прямо в CI/CD для автообновления сертификатов!

Интересные факты и практика

  • Cloudflare иногда режет специфические User-Agents — будьте аккуратнее с API-запросами.
  • Настройка “серый/жёлтый облачко” — на один домен можно повесить сразу и проксирование, и просто DNS (например, для почты).
  • Nginx печатает в access.log только IP Cloudflare, но можно добавить real_ip_header — и получать исходный IP клиента:


set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
real_ip_header CF-Connecting-IP;

Полный список IP Cloudflare для Nginx — cloudflare.com/ips

Кейсы — плюсы и минусы (из реального опыта)

  • + Защита от ботнетов (сайты на вордпрессе — must have!)
  • + Почти даром получаешь глобальный CDN
  • – Иногда надо ждать обновления DNS до 24 часов (у регистратора затуп)
  • – Cloudflare иногда “холиварит” с Let’s Encrypt по автопродлению SSL (решается Origin Certs)
  • + Очень помогает при миграции, если нужно резко сменить IP сервера

Что нового это открывает и зачем это в 2024-м?

  • Автоматизация через Cloudflare API — можно за ночь перенести домен или поднять копию для тестов.
  • Хостинг-платформы устаревают — хочется кастомизации (nginx.conf, свои Lua-скрипты, свои модули).
  • Интеграция с CI/CD удобна для DevOps и быстрой разработки.

Выводы и рекомендации

Cloudflare + Nginx + Ubuntu 24.04 актуальны надолго, и дают стопроцентный контроль, гибкость, плюс автоматику через полноценные API. Это дешевле, чем платные панели, и безопасней, чем простой хостинг. Не бойся автоматизации — от неё зависит твоя спокойная жизнь! Если хочется наконец перейти на свой сервер:

Подводя итог: делай бэкапы, не выключай 2FA, обновляй систему и помни — не бывает невзломанных серверов, бывают неинтересные!


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

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

Leave a reply

Your email address will not be published. Required fields are marked