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

Полное пошаговое руководство по установке и настройке веб-сервера Nginx в системе Ubuntu 20.04

Nginx - это популярный обратный прокси-сервер с открытым исходным кодом, доступный на нескольких платформах. Программное обеспечение было разработано Игорь Сысоев в качестве решения проблемы C10K и впервые выпущен в 2004 году. Проблема C10K - это проблема одновременного обслуживания десяти тысяч клиентов, что было довольно непросто в начале 2000-х.

В этом руководстве мы рассмотрим, как установить и настроить Nginx в Ubuntu 20.04 LTS.

Предпосылки

Система с установленной Ubuntu 20.04 и судо Пользователь. Кроме того, вам не нужно иметь никакого другого веб-сервера, такого как Apache, работающего на порте 80 или 443.

Установка Nginx

Nginx доступен в репозитории Ubuntu 20.04 и подходящий для его установки можно использовать менеджер пакетов. Итак, чтобы установить Nginx, откройте терминал, используя ctrl + alt + t и запустите:

sudo apt update && sudo apt install nginx

Установка скоро завершится, и демон Nginx автоматически запустится в фоновом режиме. Итак, чтобы проверить статус Nginx, запустите:

sudo systemctl статус nginx

После выполнения указанной выше команды вы должны получить статус Nginx как активный (работает) зеленым цветом, как показано ниже.

Настройка брандмауэра Ubuntu (UFW)

По умолчанию исходящие порты HTTP (80) и HTTPS (443) закрыты в Ubuntu 20.04. Кроме того, демон брандмауэра по умолчанию ufw отключен, так как все порты закрыты.

Таким образом, для доступа к серверу Nginx из других систем вам необходимо включить ufw и настройте его правильно, чтобы разрешить трафик на порт 80 и 443. Прежде чем включить ufw, знайте, что если вы настраиваете Nginx на удаленном сервере, сначала обновите ufw правила, позволяющие ssh запустив:

sudo ufw разрешить ssh

Приведенная выше команда позволяет ssh доступ к удаленному серверу без разрешения ssh вы будете заблокированы для доступа к удаленному серверу.

После включения ssh доступ, вы можете включить ufw демон брандмауэра, запустив:

sudo ufw enable

Теперь вам нужно изменить правила брандмауэра, чтобы разрешить порты HTTP и HTTPS, чтобы Nginx мог обслуживать веб-трафик. Чтобы изменить правила, запустите:

sudo ufw разрешить 'Nginx Full'

Nginx Полный разрешает порты HTTP и HTTPS для входящего и исходящего трафика со всех IP-адресов.

После этого проверьте, правильно ли добавлены правила в ufw брандмауэр, выполнив команду:

sudo ufw статус

Приведенная выше команда выведет правила, которые мы добавили в ufw демон брандмауэра.

Подключение к серверу Nginx

Теперь, когда мы установили Nginx и настроили ufw чтобы разрешить входящий веб-трафик HTTP и HTTPS, вы должны иметь доступ к серверу Nginx, используя IP-адрес сервера.

Если вы не знаете IP-адрес сервера, используйте команду ниже, чтобы легко его получить.

ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Получив IP-адрес, вставьте его в браузер и нажмите Enter.

// ваш-сервер-ip

Если все было настроено правильно, вы должны увидеть веб-страницу «Добро пожаловать в nginx!».

Файлы и каталоги Nginx

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

Контент веб-сервера

Вы можете настроить любое местоположение, которое будет корневым каталогом для вашего серверного блока. HTML-код Nginx по умолчанию: / var / www / html, именно там находится страница приветствия, к которой мы обращались ранее.

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

  • /домой//
  • / var / www / html /
  • / opt /

Файлы конфигурации Nginx

Все файлы конфигурации Nginx находятся в / и т. д. / nginx каталог. Давайте посмотрим на некоторые важные файлы, которые нам понадобятся для создания базового домена.

  • /etc/nginx/nginx.conf: Этот файл содержит всю конфигурацию, необходимую для запуска Nginx.
  • / и т.д. / nginx / сайты-доступные /: В этом каталоге есть вся конфигурация серверных блоков доменов, но в настоящее время они не включены / не развернуты и, следовательно, недоступны для клиентов.
  • / и т. д. / nginx / сайты-включенные /: Этот каталог содержит активные / включенные домены, доступные клиентам. Чтобы включить домен, нам нужно связать файл конфигурации домена из сайты-доступные к сайты с поддержкой каталог.
  • / и т. д. / nginx / фрагменты/: В этом каталоге мы можем хранить потенциально повторно используемые сегменты конфигурации. Это экономит много времени в производственной среде за счет того, что позволяет повторно использовать сегменты / блоки конфигурации.

Журналы сервера

Nginx регистрирует события / действия и сохраняет их в файлах журнала в / вар / журнал / nginx каталог. Nginx регистрирует действия в этих файлах:

  • /var/log/nginx/access.log: Этот файл регистрирует клиентов, которые обращались к серверу Nginx. Подробная информация включает IP-адрес клиента, время и дату, браузер, используемый для доступа к серверу, и ОС.
  • /var/log/nginx/error.log: Этот файл регистрирует ошибки, с которыми сталкивается сервер Nginx во время работы.

Итак, в этом разделе мы кратко рассмотрели некоторые важные файлы и каталоги Nginx, которых достаточно для начала.

Настройка серверных блоков

Теперь, когда у нас есть некоторые базовые знания о файлах и сервере Nginx, мы готовы настроить собственный серверный блок. Серверные блоки похожи на виртуальные хосты Apache.

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

💡 Заменить example.com с вашим доменным именем.

Прежде чем мы начнем настраивать серверные блоки, нам нужно создать каталог, который будет служить корневым каталогом для контента веб-сайта. Давайте создадим /var/www/example.com/html каталог для домена, использующего mkdir команда.

sudo mkdir -p /var/www/example.com/html

В -п опция создаст все необходимые родительские каталоги. То есть создаст example.com родительский каталог для html если его не существует.

Измените владельца каталога с помощью $ USER переменная окружения:

sudo chown -R $ USER: $ USER /var/www/example.com/html

Затем создайте простой index.html файл, который будет доступен при посещении настраиваемого домена. Это только для пояснительных целей.

нано /var/www/example.com/html/index.html

Вставьте следующее содержимое в файл, который мы только что создали на сервере.

  Добро пожаловать на example.com! 

Эй! Example.com доступен!

Нажмите ctrl + o написать и сохранить index.html файл, а затем нажмите ctrl + x выходить нано редактор.

Теперь, наконец, мы можем перейти к созданию серверного блока, чтобы Nginx мог обслуживать index.html когда какой-то пользователь переходит в example.com. Итак, чтобы создать серверный блок, нам нужно создать файл конфигурации с именем example.com в сайты-доступные каталог. Для этого используем nano и запускаем:

sudo nano /etc/nginx/sites-available/example.com

Затем введите или скопируйте / вставьте следующую конфигурацию. Затем нажмите ctrl + o и введите, чтобы написать и сохранить. Аналогично нажмите ctrl + x , чтобы закрыть редактор nano.

сервер {слушать 80; слушать [::]: 80; имя_сервера example.com www.example.com; корень /var/www/example-domain.com/html; index index.html; местоположение / {try_files $ uri $ uri / = 404; }}

Приведенная выше конфигурация аналогична конфигурации серверного блока по умолчанию, мы изменили корень оператор, чтобы указать на наш новый корневой каталог и изменил имя сервера на наше доменное имя. В то время как место расположения{} Оператор служит оператором перехвата ошибок, если файлы не найдены, и отображает клиенту ошибку 404.

Затем мы можем включить наш серверный блок, чтобы Nginx обслуживал example.com интернет страницы. Чтобы включить наш серверный блок, нам нужно создать символическую ссылку example.com файл из сайты-доступные к сайты с поддержкой каталог. Для этого запустите:

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

Ссылка будет создана в сайт включен каталог и сейчас example.com должен быть включен. Теперь у нас есть два серверных блока, включенных на нашем сервере Nginx, которые будут отвечать на запрос на основе Слушать и sever_name директивы сохранены в example.com конфигурация серверного блока.

Чтобы проверить правильность всех файлов конфигурации и отсутствие синтаксической ошибки, запустите:

sudo nginx -t

Теперь, наконец, перезапустите Nginx, чтобы применить изменения, выполнив следующую команду:

sudo systemctl перезапустить nginx

Nginx начнет обслуживать ваш серверный блок сейчас, вы можете перейти на // ваше-доменное-имя и увидите свою веб-страницу вживую.

Примечание: Чтобы вышеуказанный раздел работал, вам необходимо настроить собственный домен и заменить example.com с вашим собственным доменным именем. Кроме того, вам необходимо настроить DNS для своего домена, чтобы он указывал на IP-адрес вашего сервера Nginx.

В заключение мы рассмотрели, как установить Nginx, настроить ufw чтобы разрешить удаленный доступ к серверу Nginx, подключенному к Nginx удаленно, ознакомился с некоторыми основными файлами и каталогами Nginx и научился настраивать блок сервера.

Чтобы узнать больше о Nginx, вы можете посетить вики-страницу Nginx.

Категория: Linux