Генератор конфига nginx
Черновик server-блока под сайт на VPS. Пути к сертификату — типовые для certbot, их нужно сверить с сервером.
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. Без них прокси рвёт рукопожатие.