Nginx — это web-сервер, который проксирует запросы и отдаёт статические файлы. Для статического сайта на GitHub CMS он работает в самом простом режиме: принимает HTTPS-запросы, проверяет SSL-сертификат и возвращает готовый HTML-файл с диска. Никакого PHP, никакой базы данных, никакого FastCGI. TTFB ≤200ms достигается именно за счёт этой простоты — nginx не вычисляет страницу, он просто её отдаёт.
Полная конфигурация nginx для GitHub CMS
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/site/current;
index index.html;
# SSL от Let's Encrypt
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Безопасность
add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
# Сжатие
gzip on;
gzip_types text/html text/css application/javascript image/svg+xml;
gzip_min_length 256;
# Статические файлы — кеш на 30 дней
location /assets/ { expires 30d; add_header Cache-Control "public, immutable"; }
location /images/ { expires 30d; add_header Cache-Control "public, immutable"; }
# SPA fallback — все пути к index.html
location / { try_files $uri $uri/ /index.html; }
}
# HTTP → HTTPS редирект
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
SSL через Let's Encrypt: 4 команды
Установка certbot
apt install certbot python3-certbot-nginx
Получение сертификата
certbot --nginx -d example.com -d www.example.com
Авто-обновление
certbot renew --dry-run — проверка. Сертификат обновляется автоматически каждые 60 дней.
Проверка
SSL Labs: A+ рейтинг для nginx с правильной конфигурацией.
CSP и HSTS: защита на уровне HTTP-заголовков
🔑 Ключевые факты
FAQ
Нужен ли мне отдельный сервер для nginx?
Нет. Nginx работает на том же VPS что и сайт. Для статического сайта на 50-200 страниц достаточно VPS за 350-500 ₽/мес (Hetzner CX22 или DigitalOcean $6). Nginx обслуживает десятки тысяч запросов в секунду без нагрузки.
Как часто нужно обновлять SSL-сертификат?
Certbot автоматически обновляет сертификат Let's Encrypt за 30 дней до истечения. Никаких ручных действий. Срок действия — 90 дней.
Настройте nginx + SSL за 30 минут
GitHub CMS Pro включает готовый nginx.conf и авто-деплой на VPS. Вам остаётся только заменить домен.