Инструменты

Генератор конфига nginx

Черновик server-блока под сайт на VPS. Пути к сертификату — типовые для certbot, их нужно сверить с сервером.

sites-available
server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Конфиг собирается в браузере. Это заготовка, не полный nginx.conf: её кладут в sites-available и включают ссылкой из sites-enabled.

Проксирование подходит для Node, Python и другого приложения на localhost. Статика — для собранного фронта. Редирект — отдельный блок, который отправляет HTTP на HTTPS.

Вопросы

Куда класть файл?

Обычно /etc/nginx/sites-available/домен.conf, затем симлинк в sites-enabled и nginx -t перед перезагрузкой.

Сертификата ещё нет. Что с путями?

Снимите галочку SSL, поднимите сайт по HTTP и выпустите сертификат через панель или certbot. Потом включите SSL и подставьте фактические пути.

WebSocket не подключается?

Включите галочку WebSocket: в location добавятся Upgrade и Connection. Без них прокси рвёт рукопожатие.