Встановлення та базове налаштування nginx в Debian

завантажимо і додамо ключ з http://nginx.org/ru/linux_packages.html#stable

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

sudo vim /etc/apt/sources.list

додамо наступні строки

  deb http://nginx.org/packages/debian/ stretch nginx
  deb-src http://nginx.org/packages/debian/ stretch nginx

далі

sudo apt-get update
sudo apt-get install nginx

базові налаштування

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

далі в директорію /etc/nginx/sites-available потрібно зберегти конфіг для сайту
приклад конфігу для n2o-додатку можна знайти тут
https://github.com/221V/ublog/blob/master/nginx_conf.txt

upd. debian 12 nginx 1.26.2-1~bookworm

# зміни - замість

server{
  listen  website.com ssl http2;
  # or
  listen 443 ssl http2;
  ...

->

# пишемо
server{
  listen  website.com ssl;
  # or
  listen 443 ssl;
  # and
  http2  on;
  ...

включимо віртуальні хости

vim /etc/nginx/nginx.conf

додамо наступну строчку після існуючої в файлі include

include /etc/nginx/sites-enabled/*;

після цього включимо даний конфіг та перезапустимо nginx щоб застосувати зміни

sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo service nginx stop
sudo service nginx start

у випадку помилки в конфігу nginx не запуститься
знайти підказку про строчку з помилкою ми можемо за допомогою команди

sudo nginx -t

версію nginx можна глянути так

nginx -v

також не забудемо створити директорію для видачі статики

sudo mkdir /var/www
sudo mkdir /var/www/site1
sudo mkdir /var/www/site1/stc
sudo mkdir /var/www/site1/stc/js
sudo mkdir /var/www/site1/stc/css
sudo mkdir /var/www/site1/stc/img
sudo chown -R erlang:erlang /var/www

також для сайту необхідно згенерувати сертифікати шифрування https
у нашому випадку від letsencrypt, про це читайте далі

upd. про сертифікат з автоматизацією

Посилання

http://nginx.org/ru/linux_packages.html#stable