- Home »

Как разместить сайт с Cloudflare и Nginx на Ubuntu 24.04
Наконец-то решил выкатить пошаговый гайд: как разместить свой сайт с Cloudflare и Nginx на Ubuntu 24.04. Почему это вообще важно? Потому что надоело платить за готовые панели и зависеть от хостинга, а хочется управлять сервером самостоятельно, чтобы всё под контролем, быстро, безопасно и с кайфом автоматизации. В этом посте — минимально воды, максимально практики: от “что это вообще такое” до скриптов и шаблонов. Будет чуть гиковщины, неожиданных трюков и пара суровых историй из практики — чтобы обойти косяки ещё на старте.
Как это работает?
- Cloudflare — это не просто ускоритель сайта, а ещё и бесплатная защита от DDoS, кэширование и даже бесплатный SSL. По факту, он выступает как реверс-прокси между вашим сайтом и внешним миром.
- Nginx — любимый веб-сервер всех гиков (и не только). Лёгкий, быстрый, гибкий как гибкий роутер.
- Ubuntu 24.04 — свежий LTS, оптимальный для продакшна прямо сейчас.
Вся магия работает так: запрос уходит сначала в Cloudflare, тот фильтрует всякий мусор, шифрует-трафик и пересылает к Nginx на вашем VPS/Dedicated — и только тут сайт действительно обрабатывает запросы.
Как быстро и просто всё настроить?
Смотри, базовые шаги:
- Зарегистрироваться на Cloudflare (если ещё нет аккаунта).
- Создать сайт, добавить свой домен — Cloudflare даст свои NS-записи.
- Указать NS домена на Cloudflare (это делается у регистратора домена).
- Поднять на сервере Ubuntu 24.04 свежий Nginx.
- Настроить свой сайт (виртуальный хост и т.д.).
- Разрешить Cloudflare-IP в firewall (ибо они будут бомбить ваш сервер).
- Улучшить безопасность, настроить 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. Это дешевле, чем платные панели, и безопасней, чем простой хостинг. Не бойся автоматизации — от неё зависит твоя спокойная жизнь! Если хочется наконец перейти на свой сервер:
- Для VPS — арендовать VPS
- Для выделенного железа — dedicated
Подводя итог: делай бэкапы, не выключай 2FA, обновляй систему и помни — не бывает невзломанных серверов, бывают неинтересные!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.