NGINX – установка и настройка

Установка NGINX на сервер Ubuntu

Для установки NGINX выполните следующие команды:

sudo apt update
sudo apt install nginx

Далее появится сообщение(примерно такого содержания):
Need to get 2,690 kB of archives.(Нужно получить 2690 Кб архивов.)
After this operation, 8,335 kB of additional disk space will be used.(После этой операции будет использовано 8 335 Кб дополнительного дискового пространства.)
Do you want to continue? [Y/n] (Вы хотите продолжить? [Да/Нет])

Соглашаемся: вводим Y и жмем Enter

Готово! NGINX установлен.

Создание и активация конфигурационного файла NGINX для нашего сайта

Данный пример будем рассматривать с использованием домена example.com, если вы будете использовать данный код, не забудьте поменять на название своего домена.

Нижеперечисленные действия будут произведены используя ssh-клиент, например программа PuTTy. Но вы также можете использовать и ftp-клиент, такие как WinSCP, FileZilla, например для редактирования или добавления конфигурационных файлов.

Начнём

1. Перейдите в каталог конфигураций Nginx с помощью команды:

cd /etc/nginx/sites-available/

2. Создайте новый конфигурационный файл для вашего сайта. Назовите его, например, example.com.conf :

sudo nano example.com.conf 

3. В открывшемся редакторе добавьте ваши конфигурации, например:

server {
    listen 80;
    server_name example.com;

    location / {
		# Проксируем его на 3001 порт
        proxy_pass http://127.0.0.1:3001;

		# прочие настройки
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Настройки данного файла проксируют запросы с 80 порта (обычного HTTP порта) на наше приложение, работающее на порту 3001.

4. Сохраните и закройте файл (в Nano используйте сочетание клавиш Ctrl+O, затем Enter, а затем Ctrl+X).

5. Создайте символическую ссылку на файл конфигурации в каталоге sites-enabled, чтобы активировать его:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

6. Проверьте, нет ли синтаксических ошибок в конфигурации Nginx:

sudo nginx -t

Если обнаружатся ошибки, исправьте их и выполните команду ещё раз, чтобы убедиться, что ошибки отсутствуют.

7. Если ошибок нет, перезапустите Nginx:

sudo systemctl restart nginx

Файл конфигурации nginx для редиректа с www и https

server {
    listen 80;
    server_name www.api.bizoncrm.ru api.bizoncrm.ru;
    return 301 https://api.bizoncrm.ru$request_uri;
}

server {
    listen 443 ssl;
    server_name api.bizoncrm.ru www.api.bizoncrm.ru;

    ssl_certificate /etc/letsencrypt/live/api.bizoncrm.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.bizoncrm.ru/privkey.pem;

    location / {
		proxy_pass http://127.0.0.1:8000/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
		
    }

 
location /media/ {
    root /var/www/mediahoover/backend/core; 
}
}