Как пользоваться: Генератор конфига Nginx
- Выберите сценарий: Статический сайт, SPA (все маршруты направляются на
index.html), Reverse proxy к приложению на порту или PHP-FPM. - Укажите домен, корневой каталог или адрес upstream и выберите, как обрабатывать
www. - Отметьте дополнительные опции: HTTPS с путями Let’s Encrypt, gzip, кеширование статики, заголовки безопасности, WebSockets, ограничение запросов.
- Скопируйте конфиг, проверьте его командой
nginx -tи перезагрузите Nginx.
Что добавляет каждая опция
| Опция | Директивы |
|---|---|
| HTTPS | Сервер на порту 80, который делает редирект с 301, listen 443 ssl, пути к сертификатам Certbot и location для ACME challenge |
| SPA | try_files $uri $uri/ /index.html;, чтобы клиентские маршруты не возвращали 404 |
| Reverse proxy | proxy_pass и заголовки Host, X-Real-IP, X-Forwarded-For и X-Forwarded-Proto |
| WebSockets | proxy_http_version 1.1 с заголовками Upgrade / Connection |
| gzip | Сжатие текста, JSON, JS, CSS, SVG и шрифтов |
| Кеширование статики | Год кеширования с Cache-Control: immutable для файлов с хешем в имени и короткий кеш для HTML |
| Заголовки безопасности | X-Content-Type-Options, Referrer-Policy, X-Frame-Options, Permissions-Policy |
| Rate limit | limit_req_zone (в контексте http) и limit_req с burst |
Получение сертификата
Сначала создайте конфиг с выключенным HTTPS, перезагрузите Nginx и выполните sudo certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com или просто sudo certbot --nginx. Затем включите HTTPS, перезагрузите Nginx и проверьте результат с помощью SSL Checker, Redirect Checker и Security Headers Checker.
Частые ошибки
- Пропущенная точка с запятой: каждая директива заканчивается на
;.nginx -tпокажет точную строку с ошибкой. - Наследование add_header:
add_headerвнутриlocationзаменяет все заголовки, заданные на уровне server. Генератор повторяет заголовки безопасности там, где это нужно. - Завершающий слеш в proxy_pass:
proxy_pass http://app/;отбрасывает префикс location, аproxy_pass http://app;сохраняет его. - Неверные MIME-типы: шрифты или
.webmanifestотдаются какapplication/octet-stream. Проверить тип можно с помощью MIME Type Lookup.
Работаете в Docker? Используйте вместе с Docker Compose Generator.
Также ищут как: nginx reverse proxy конфиг, nginx конфиг для spa, nginx server block, nginx редирект на https, nginx проксирование websocket, nginx php-fpm конфиг, nginx редирект www.
Инструменты, которые хорошо сочетаются с Генератор конфига Nginx
- Генератор Apache VirtualHost — Получите готовый конфиг виртуального хоста Apache для вашего домена: статический сайт, WordPress, PHP-FPM или обратный прокси к приложению на Node или Python.
- Генератор Caddyfile — Caddy получает HTTPS-сертификаты автоматически, вам нужно только описать сайт.
- Валидатор YAML — Вставьте файл Docker Compose, манифест Kubernetes, workflow GitHub Actions или любой YAML, чтобы найти ошибку, поймать типичные ловушки и получить аккуратно отформатированную версию.
- Генератор YAML для Kubernetes — Укажите имя приложения, образ и порт, и вы получите готовый к продакшену YAML для Kubernetes: Deployment с пробами, лимитами ресурсов и защищённым security context, а также выбранные вами Service, Ingress с TLS, ConfigMap, Secret и HorizontalPodAutoscaler — всё в одном файле, готовом для kubectl apply.