Как установить и настроить Nginx на Ubuntu

По просьбам трудящихся, выкладываю короткую статью, от том, как настроить связку Nginx и FastCGI (которая будет обрабатывать PHP скрипты).

Установка Nginx

Если на вашем компьютере уже установлен , давайте посмотрим, как установить Nginx.

Установка на Mac

Если вы работаете на Mac, вы можете использовать Homebrew для простой установки Nginx. Шаги следующие:

  • Для homebrew необходим каталог /usr/local который нужно chown для вашего имени пользователя. Итак, сначала запустите следующую команду в терминале:

sudo chown -R ‘username here’ /usr/local

  • Теперь следующие две команды установят Nginx в вашей системе.

brew link pcre brew install nginx

  • После завершения установки вы можете ввести следующую команду для запуска Nginx:

sudo nginx

  • Файл конфигурации Nginx можно найти здесь: /usr/local/etc/nginx/ .

Установка на Ubuntu

Если вы используете Ubuntu, вы можете использовать следующую команду для установки Nginx:

sudo apt-get update sudo apt-get install nginx

После установки Nginx он запустится автоматически.

Установка на Windows

Для Windows зайдите на страницу загрузок Nginx и получите zip. Следующим шагом является разархивирование архива и перемещение в каталог в командной строке следующим образом:

unzip cd start nginx

Как видите, команда start nginx запустит Nginx.

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

Установка веб-сервера Nginx

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

Читайте также:  4 способа как узнать свой тариф Актив в Казахстане

sudo apt install nginx

После установки запустим сервер:

sudo systemctl start nginx

И проверим статус сервиса Nginx:

sudo systemctl status nginx

Он должен быть в состоянии «active (running)»:

Статус сервиса

Чтобы вернуть фокус ввода нажми клавишу q (если не срабатывает смени раскладку клавиатуры).

Установка веб-сервера Nginx

Мы убедились, что сервер запущен. Для того, чтобы не выполнять последнюю команду по его активации можно включить автозапуск Nginx при старте системы следующей командой:

sudo systemctl enable nginx

Для отключения автозапуска используется команда:

sudo systemctl disable nginx

Последним шагом осталось присвоить каталог сервера пользователю www-data:

sudo chown www-data:www-data /usr/share/nginx/html -R

Добавить своего пользователя в группу www-data  ($USER — переменная с именем текущего пользователя):

sudo usermod -a -G www-data $USER

И задать права для группы на чтение и запись:

sudo chmod ug+rwx /usr/share/nginx/html/

Последние 3 шага не обязательны, но так мы сможем работать с каталогом html от имени своего пользователя, а не от root.

Настало время убедиться, что сервер работает. Для этого в браузере (например Firefox) наберем IP адрес машины, на которую мы устанавливаем LEMP. Если установка производится на локальный компьютер, тогда IP будет 127.0.0.1

Окно браузера

Судя по приветствию «Welcome to nginx!» — все работает.

Для остановки сервера используется команда:

sudo systemctl stop nginx

Что, если после запуска сервера его статус active, но браузер показывает ошибку соединения?

Установка веб-сервера Nginx

Ошибка соединения

Возможно запросы блокирует фаервол, например UFW или iptables. Для нормальной работы web-сервера нужно открыть в них 80 порт. Например, в iptables это делается командой:

sudo iptables -I INPUT -p tcp —dport 80 -j ACCEPT

А в UFW:

sudo ufw allow http

Читайте также:  Как установить и настроить FTP сервер на Ubuntu Linux

Для справки — логи Nginx хранятся в каталоге /var/log/nginx:

  • — лог обращений к серверу
  • — лог с возникающими ошибками

На данном этапе установка nginx в ubuntu закончена.

Рестарт nginx и другие параметры командной строки

Перед тем, как двигаться дальше к настройке nginx, предлагаю пройтись по основным параметрам в командной строке. Это упростит и ускорит дальнейшую работу.

Прежде всего расскажу, как перезапустить nginx. С помощью systemctl на всех дистрибутивах это выглядит одинаково.

# systemctl restart nginx

Перед перезагрузкой nginx, рекомендую выполнить проверку конфигурации:

Рестарт nginx и другие параметры командной строки

# nginx -t

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

# nginx -s reload

Следующая команда помимо тестирования конфигурации, выводит полный конфиг на экран. Вывод можно направить в отдельный файл и там проанализировать. Это удобно, когда у вас конфигурация состоит из множества вложенных конфигов, правильность которых трудно оценить разом.

# nginx -T

Так же бывает полезно посмотреть полную информацию о версии nginx, параметрах сборки, модулях и т.д.

# nginx -V

Рестарт nginx и другие параметры командной строки

Например, мне эта информация была нужна, когда я делал собственную сборку nginx c поддержкой tls 1.3 и модулем сжатия brotli.

В принципе, на этом все. Не припоминаю, чтобы я использовал что-то еще. Плавно переходим к конфигурации nginx.

nginx и uWSGI и

Давайте еще раз запустим приложение «hello world» .

uwsgi —socket :8001 —wsgi-file

Это почти так же, как и раньше, за исключением того, что один из вариантов отличается:

  • socket :8001: использует протокол uwsgi, порт 8001

В то же время nginx настроен на связь с uWSGI через этот порт и с внешним миром через порт 8000. Посетите:

:8000

Теперь наш стек будет следующим:

the web client <-> the web server <-> the socket <-> uWSGI <-> Python

Между тем, вы можете попытаться взглянуть на вывод uswgi по адресу :8001 — но вполне вероятно, что он не будет работать, потому что ваш браузер работает по протоколу http, а не через протокол uWSGI, хотя вы должны увидеть вывод uWSGI в терминале.