Linux

Руководство по файлам конфигураций NGINX

Это полное руководство о том как расположить любой технологический стек на Ubuntu машине. Здесь рассмотрены аспекты связанные с front-end хостингом, back-end хостингом вместе с обратными прокси между обслуживающими маршрутами изображений. Эта статья станет универсальным средством для полного развертывания в продакшене или среде разработки.

Подготовка

До того как мы приступим к данному руководству, вы должны иметь постоянного, не root пользователя с привилегиями sudo с конфигурацией на вашем сервере.

Шаг 1: Установка Nginx

Ngnix доступен в репозиторий Ubuntu по умолчанию, поэтому установка не занимает много времени.

Это будет наше первое взаимодействие с системой установки apt в этой сессий. Мы обновим наш локальный индекс пакетов, чтобы мы имели доступ к большинству последних списков пакетов.

Затем мы устанавливаем Nginx используя следующую команду

sudo apt-get update
sudo apt-get install nginx

После применения этой процедуры, apt-get установит Nginx и все его зависимости на ваш сервер.

Шаг 2: Управление Nginx процессом

Теперь, когда ваш web сервер запущен и работает, мы можем пройтись по некоторым базовым командам управления.

Чтобы остановить веб-сервер

sudo systemctl stop nginx

Чтобы запустить веб-сервер, когда он остановлен

sudo systemctl start nginx

Чтобы остановить, а затем снова запустить службу

sudo systemctl restart nginx

Если вы уже легко делаете конфигурационные изменения, Nginx можно довольно часто перезагружать без удаления соединения. Для этого можно использовать эту команду

sudo systemctl reload nginx

По умолчанию конфигурация Nginx настроена на автоматическую загрузку при старте системы.

Если это не то что вам нужно, вы можете изменить это поведение напечатав:

sudo systemctl disable nginx

Для повторного включения сервиса при старте системы:

sudo systemctl enable nginx

Для запуска тестов ваших конфигурационных файлов:

sudo nginx -t

Шаг 3: Важные файлы и каталоги Nginx

Как только вы узнаете как управлять самой службой, вы должны потратить несколько минут на самостоятельное изучение нескольких важных файлов и директорий.

Содержание

  • /var/www/html: актуальный веб контент, который по умолчанию состоит из базовой страницы Nginx, которую вы видели раньше. Она отдается из директорий /var/www/html . Это поведение можно изменить изменив файлы конфигураций Nginx.

Конфигурация сервера

  • /etc/nginx: директория конфигураций Nginx. Все файлы конфигураций Nginx находятся здесь.
  • /etc/nginx/nginx.conf: главный файл конфигураций Nginx. В нем можно делать глобальные конфигурационные изменения Nginx.
  • /etc/nginx/sites-available/:  каталог в котором могут храниться все “server blocks” вашего сайта. Nginx не будет использовать найденные конфигураций в этой директорий, если они не являются ссылками на sites-enabled каталог (смотрите ниже). Обычно все конфигураций серверного блока выполняются в этом каталоге, и затем активируются путем ссылки на другой каталог.
  • /etc/nginx/sites-enabled/: директория где хранятся включенные “server block” для каждого сайта. Как правило, они создаются путем ссылки на файлы конфигураций найденные в каталоге sites-available.
  • /etc/nginx/snippets: эта директория содержит фрагменты конфигураций, которые могут быть включены где-нибудь еще в других Nginx конфигурациях. Потенциально повторяющиеся конфигураций являются хорошими кандидатами на рефакторинг в сниппеты.

Server Logs

  • /var/log/nginx/access.log: каждый запрос к вашему web серверу, записывается в лог файл пока Nginx не настроен по другому в конфигураций.
  • /var/log/nginx/error.log: каждая ошибка Nginx будет записана только в этот лог.

Что мы узнали на данный момент

Теперь, когда у вас установлен web сервер, у вас есть множество вариантов для обслуживания различного типа контента и технологий для достижения и использования под ваши цели. Для проверки введите публичный адрес вашего сайта. Результат должен быть следующим

Настройте NGINX для обслуживания вашего веб-сайта

Вам необходимо рассказать о вашем сайте и о том как его обслуживать.

#Здесь находятся файлы конфигураций Nginx
cd /etc/nginx/

Две интересующие нас директорий являются sites-available и sites-enabled.

  • sites-available содержит индивидуальные файлы конфигураций для всех ваших возможных статичных файлов.
  • sites-enabled содержит ссылки на актуальные конфигурационные файлы которые Nginx будет читать и запускать.

Сейчас перейдите в /etc/nginx/sites-enabled и отредактируйте файл конфигураций default используя vim или nano на ваш выбор по следующему примеру:

server {
    listen 80 default_server;
    listen [::]:80 default_server; 
    root /var/www/html;  
    index index.html; 
    server_name _;  
    location / {
       try_files $uri $uri/ =404;
     }
}

Приведенный выше код предназначен для :

  • Доставляет файлы из каталога /var/www/html или это может быть путь к вашему index.html.
  • Главная индексная страница называется index.html.
  • Запросы которые запрашиваются, должны обслуживаться этим серверным блоком.

Теперь, если перезагрузите Nginx вы увидите ваш сайт.

sudo systemctl restart nginx

Настройте NGINX для обслуживания вашего бэкэнда

Вам нужно рассказать Nginx о вашем сайте и как обслуживать его. Перейдите в каталог где расположены конфигурационные файлы Nginx.

 cd /etc/nginx

Два интересующих нас каталога это sites-available и sites-enabled

  • sites-available содержит личные конфигурационные файлы для вашего возможного статического сайта.
  • sites-enabled содержит ссылки на конфигурационные файлы, которые будет считывать и обслуживать Nginx.

Теперь, перейдите в каталог /etc/nginx/sites-enabled и отредактируйте файл default используя nano или vim на ваш выбор

server {
    listen 80 default_server;
    listen [::]:80 default_server; 
    root /var/www/html;  
    index index.html; 
    server_name _;  
    location / {
       try_files $uri $uri/ =404;
    }
    location /api/ {
           proxy_pass http://localhost:8080/;
           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;
    }
    
}

Что делает код выше

  • На /api можно получить доступ к серверной части маршрута, которая является ссылкой на процесс локального хоста в порту 8080.

Конфигурация Nginx для обслуживания каталога изображений

Перейдите в каталог /etc/nginx/sites-enabled и отредактируйте файл default используя vim или nano как в примере ниже

server {
    listen 80 default_server;
    listen [::]:80 default_server; 
    root /var/www/html;  
    index index.html; 
    server_name _;  
    location / {
       try_files $uri $uri/ =404;
    }
    location /api/ {
           proxy_pass http://localhost:8080/;
           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 /images {
           alias uploads/images/;
    }
}

Этот код делает следующее:

  • На маршруте /images может быть получен доступ к изображениям, которые являются ссылкой на uploads/images экземпляра папки. Он будет указывать на все изображения в папке изображений.

Резюме

Если вы прочитали всю статью, возможно, вы поняли все о том, как установить nginx и настроить его для вашего использования. Статья также дает вам информацию о том как создать обратный proxy и создавать редиректы.

Вы также можете посетить nginx.org, чтобы узнать больше о том, как его установить и использовать.

To top