60 слов | 1 минута
Nginx на VDSina
Установка и настройка Nginx в качестве reverse-proxy для Node.js-приложений на VPS VDSina.
1. Установка
sudo apt update
sudo apt install nginx
2. Автозапуск и проверка
# Добавить в автозапуск
sudo systemctl enable nginx
# Проверить статус
sudo service nginx status
# Проверить автозапуск
sudo systemctl is-enabled nginx
Строка Active: active (running) подтверждает успешную работу.
3. Конфигурационные файлы
| Файл / директория | Назначение |
|---|---|
/etc/nginx/nginx.conf |
Основной конфиг |
/etc/nginx/sites-available/ |
Конфиги виртуальных хостов |
/etc/nginx/sites-enabled/ |
Активные виртуальные хосты (симлинки) |
/var/www/ |
Корневые директории сайтов |
4. Конфигурация reverse-proxy для Node.js
Файл: /etc/nginx/sites-enabled/example.conf
Nginx проксирует /api → Node.js на порту 3000, /bot → Node.js на порту 3010.
upstream api {
server localhost:3000;
}
upstream bot {
server localhost:3010;
}
server {
server_name example.com;
root /var/www/html;
index index.html index.htm;
error_page 404 /404.html;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://api;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /bot {
proxy_pass http://bot;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
}
listen 80;
server_name example.com;
return 404;
}