Как установить 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, веб-разработку и настройку различных систем.

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’

      Ответить