103 слова | 1 минута
Nginx
Для начала нужно обновить списки пакетов из репозиториев:
sudo apt update
После окончания процесса обновления пакетов можно установить Nginx на машину:
sudo apt install nginx
Дождемся окончания установки, а после добавим программу в автозагрузку
sudo systemctl enable nginx
Теперь нужно проверить, что веб-сервер успешно установлен и работает, а также добавлен в автозагрузку. Проверим статус работы веб-сервера
sudo service nginx status
Строка «Active: active (running)...» указывает на успешную работу сервера.
Теперь проверим его наличие в автозагрузке:
sudo systemctl is-enabled nginx
Конфиг лежит тут: /etc/nginx/nginx.conf
Настройки
Это nginx.conf, sites-available и sites-enabled соответственно. Все они лежат в директории /etc/nginx.
sudo nano /etc/nginx/nginx.conf
Настройка виртуальных хостов: https://timeweb.cloud/tutorials/ubuntu/kak-ustanovit-nginx-na-ubuntu
Сайты по умолчанию лежат тут: /var/www/
Обратный прокси
/etc/nginx/sites-enabled/example.conf
Смысл в том, что настраиваем nginx в качестве reverse-proxy для NodeJS
# List of application servers
upstream api {
server localhost:3000;
}
upstream bot {
server localhost:3010;
}
server {
server_name 2dapp.ru;
root /var/www/html;
index index.html index.htm;
error_page 404 /404.html;
location / {
#try_files $uri $uri/ @backend;
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/2dapp.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/2dapp.ru/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = 2dapp.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name 2dapp.ru;
return 404; # managed by Certbot
}