Как установить NGINX на Ubuntu 20.04 и разместить сайт

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

В этом инструкции мы установим NGINX в качестве автономного веб-сервера на Ubuntu 20.04.

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

Прежде чем приступить к установке NGINX. Сначала запустите команду sudo apt-get update, чтобы получить информацию о новых и обновленных пакетах Ubuntu.

Nginx доступен в репозитории пакетов Ubuntu. Поэтому Nginx очень лего установить с помощью следующей команды:

$ sudo apt-get install nginx

Проверьте состояние службы NGINX

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

$ sudo systemctl status nginx

Проверьте состояние службы NGINX
Проверьте состояние службы NGINX

Вывод приведенной выше команды подтверждает, что NGINX активен и работает.

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

$ sudo systemctl start nginx

Чтобы проверить установленную версию Nginx, запустите:

$ sudo dpkg-l nginx

Провера версии Nginx на Ubuntu
Провера версии Nginx на Ubuntu

Проверьте версию Nginx на Ubuntu

=

Эти данные показывают, что установлен nginx версии 1.18.0. На момент написания статьи это последняя версия для Ubuntu 20.04.

Тестирование веб-сервера NGINX

После того когда вы узнали что служба NGINX активна и работает. Требуется протестировать веб-сервер. Для этого откройте свой браузер и введите IP-адрес вашего сервера на котором установлен NGINX. Например http://192.168.1.100

Вы должны увидеть веб-страницу по умолчанию под названием “Добро пожаловать в nginx!

Веб-страница по умолчанию NGINX
Веб-страница по умолчанию NGINX

Теперь требуется, убедится, что соответствующий порт открыт в вашем брандмауэре. Например, если вы включили Брандмауэр UFW на своем сервере Ubuntu. Вы должны попытаться обновить правила брандмауэра. Для того чтобы разрешить NGINX общаться по порту 80 и/или 443 следующим образом.

Команда разрешает NGINX работать на порту 80:

$ sudo ufw allow 'Nginx HTTP'

Команда разрешает NGINX работать на порту 443:

$ sudo ufw allow 'Nginx HTTPS'

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

Если вы хотите разместить несколько веб-сайтов на одном веб-сервере NGINX, то вам нужно будет настроить серверные блоки. Серверные блоки также называются виртуальными хостами (в основном в Apache).

NGINX предварительно сконфигурирован только с одним блоком сервера. И именно там хранятся сведения о конфигурации для вебсайта по умолчанию (/etc/nginx/sites-available) (/var/www/html).

Давайте посмотрим:

$ sudo ls -l /etc/nginx/sites-available

total 8

-rw-r–r– 1 root root 2416 Mar 26 2020 default

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

$ sudo cat /etc/nginx/sites-available/default | more

Нажмите пробел на клавиатуре, чтобы прокрутить страницу вниз. Вы увидите сведения о конфигурации сервера по умолчанию. Например такие данные как номер порта прослушивания, корневой каталог документа (т. е. базовая папка для хранения содержимого веб-сайта), индексный файл и имя сервера.

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

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

/etc/nginx/sites-available/default

# Virtual Host configuration for example.com

# You can move that to a different file under sites-available/ and symlink that

# to sites-enabled/ to enable it.

#server {

# listen 80;

# listen [::]:80;

# server_name example.com;

# root /var/www/example.com;

# index index.html;

# location / {

# try_files $uri $uri/ =404;

# }

#}

А пока скопируйте приведенный выше пример конфигурации и сохраните его в текстовом редакторе. Так как мы будем использовать эту информацию в ближайшее время.

Создать корень сайта

Далее вам нужно будет создать корневую папку в разделе /var / www . Это делается для хранения содержимого вашего дополнительного веб-сайта. Например, я собираюсь создать папку с именем domain1.com.

Примечание: Прошу заметить что domain1 должен быть вашим зарегистрированным доменным именем. Вы также должны обновить записи DNS у регистратора. Для того чтоб указать свое доменное имя на общедоступный IP-адрес вашего веб-сервера NGINX.

sudo mkdir /var / www/domain1. com

Создание индексного файла

Индексный файл – это главная веб-страница, которая отображается при открытии веб-сайта. Выполните следующую команду, чтобы создать индексный файл для вашего дополнительного веб-сайта.

$ sudo nano /var/www/domain1.com/index.html

В этом примере я использую nano, но вы можете использовать свой любимый текстовый редактор. Вы можете скопировать и вставить следующий HTML код для тестирования.

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Domain1!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to Domain1!</h1>
<p>If you see this page, the Domain1 website is working!</p>
</body>
</html>

Сохраните изменения и закройте текстовый редактор.

Создание серверного блока

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

$ sudo nano /etc/nginx/sites-available/domain1

Скопируйте пример конфигурации виртуального хоста сохраненного ранее и вставьте его в новый файл. Начиная со строки “server”, убедитесь, что вы удалили все символы #. Чтобы раскомментировать директивы. Кроме того, не забудьте заменить “domain1” на ваше собственное зарегистрированное доменное имя соответственно.

# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
listen 80;
listen [::]:80;

server_name domain1.com www.domain1.com;

root /var/www/domain1.com;
index index.html;

location / {
try_files $uri $uri/ =404;
}

Сохраните изменения и закройте этот файл.

Включить серверный блок

Чтобы NGINX знал, что дополнительный веб-сайт доступен, выполните следующую команду для создания символической ссылки на файл блока сервера.

$ ln -s /etc/nginx/sites-available/domain1 /etc/nginx/sites-enabled

Проверьте свою конфигурацию

Запустите sudo nginx-t, чтобы проверить конфигурацию блока сервера. Вы должны увидеть сообщение, указывающее, что все в порядке.

$ sudo nginx-t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Вы можете запустить sudo service nginx reload, чтобы перезагрузить файлы конфигов.

Протестируйте свой новый сайт

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

Хостинг дополнительного сайта с использованием серверного блока
Хостинг дополнительного сайта с использованием серверного блока

Основные команды для управления NGINX сервером

Вот основные команды Nginx сервера для управления.

Команда  restart  остановит службу, а затем запустит ее снова.

$ sudo systemctl restart nginx

Команда reload сообщает NGINX перезагрузить конфигурационные файлы, но без остановки службы.

$ sudo systemctl reload nginx

Команда stop остановит службу NGINX.

$ sudo systemctl stop nginx

Включение Nginx при загрузке системы.

$ sudo systemctl enable nginx

Примечание: служба Nginx включена по умолчанию. И автоматически стартует при загрузке сервера.

Основные файлы конфигурации и журналов NGINX

/etc/nginx этот файл содержит все конфигурационные файлы NGINX.

/etc/nginx/sites-available этот файл содержит дынные серверных блоков, в которых хранят сведения о конфигурации. Требуется это  для обслуживания одного или нескольких веб-сайтов.

/etc/nginx/sites-enabled данный файл содержит конфигурации одного или нескольких включенных веб-сайтов.

/etc/nginx/nginx. conf  это основной конфигурационный файл, который считывает директивы конфигурации в других файлах.

/var / log/nginx / access. log этот файл хранит данные о всех посещениях вашего сайта

/var/log/nginx/error. log этот файл предназначен для хранения ошибок NGINX

Заключение

Следуя этой инструкции, вы можете запустить NGINX с одним или несколькими веб-сайтами на вашем сервере Ubuntu 20.04. Но если вдруг у вас возникли какие-либо проблемы, то пожалуйста, не стесняйтесь сообщить мне об этом в разделе комментариев ниже. Я сделаю все возможное, чтобы помочь вам.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

Моя работа направлена на образование и распространение знаний в области информационных технологий, помогая другим расширять свои возможности и углублять понимание современных технологий.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.

  1. Юрий

    borisych@ubuntu:~$ sudo ufw разрешить ‘Nginx HTTP’
    [sudo] пароль для borisych:
    ERROR: Invalid syntax

    Usage: ufw COMMAND

    В чем проблема?

    Ответить
    1. Nazario автор

      Блин там кв место разрешить надо написать allow

      $ sudo ufw allow ‘Nginx HTTP’
      $ sudo ufw allow ‘Nginx HTTPS’

      Ответить