Tutorial

Установка Nginx в Ubuntu 20.04 [Краткое руководство]

NginxUbuntuQuickstartUbuntu 20.04

Введение

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

В этом обучающем модуле мы покажем, как установить Nginx на сервере Ubuntu 20.04. Более подробную версию этого обучающего модуля можно найти в документе Установка Nginx в Ubuntu 20.04.

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

Поскольку Nginx доступен в хранилищах Ubuntu по умолчанию, вы можете установить его с помощью системы пакетов apt.

Обновите локальный индекс пакетов:

  • sudo apt update

Установите Nginx:

  • sudo apt install nginx

Шаг 2 — Настройка брандмауэра

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

  • sudo ufw app list
Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

Мы активируем профиль с наибольшими ограничениями, который будет разрешать заданный трафик, а именно трафик на порту 80:

  • sudo ufw allow 'Nginx HTTP'

Проверьте изменения:

  • sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Шаг 3 — Проверка веб-сервера

Используйте команду systemd init system, чтобы проверить работу службы:

  • systemctl status nginx
Output
nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:> Active: active (running) since Mon 2020-05-04 22:45:26 UTC; 1min 17s ago Docs: man:nginx(8) Main PID: 13255 (nginx) Tasks: 2 (limit: 1137) Memory: 4.6M CGroup: /system.slice/nginx.service ├─13255 nginx: master process /usr/sbin/nginx -g daemon on; master> └─13256 nginx: worker process

Откройте страницу Nginx по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес:

http://your_server_ip

Вы получите страницу назначения Nginx по умолчанию:

Страница Nginx по умолчанию

Шаг 4 — Настройка блоков сервера (рекомендуется)

При использовании веб-сервера Nginx вы можете использовать блоки сервера (аналогичные виртуальным хостам в Apache) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен your_domain, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени в DigitalOcean, ознакомьтесь с документом «Введение в DigitalOcean DNS».

Создайте каталог your_domain, используя флаг -p для создания необходимых родительских каталогов:

  • sudo mkdir -p /var/www/your_domain/html

Назначьте владельца каталога:

  • sudo chown -R $USER:$USER /var/www/your_domain/html

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

  • sudo chmod -R 755 /var/www/your_domain

Создайте в качестве примера страницу index.html, используя nano или свой любимый редактор:

  • nano /var/www/your_domain/html/index.html

Добавьте в страницу следующий образец кода HTML:

/var/www/your_domain/html/index.html
<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain server block is working!</h1>
    </body>
</html>

Сохраните файл и закройте его после завершения.

Создайте новый серверный блок в /etc/nginx/sites-available/your_domain:

  • sudo nano /etc/nginx/sites-available/your_domain

Вставьте следующий блок конфигурации, обновленный с учетом новых имен каталога и домена:

/etc/nginx/sites-available/your_domain
server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your_domain www.your_domain;

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

Сохраните файл и закройте его после завершения.

Активируйте файл, создав ссылку от него в каталог sites-enabled:

  • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Теперь два серверных блока активированы и настроены отвечать на запросы на базе директив listen и server_name:

  • your_domain: будет отвечать на запросы your_domain и www.your_domain.
  • default: будет отвечать на любые запросы порта 80, не соответствующие двум другим блокам.

Чтобы избежать возможной проблемы с хэшированием памяти при добавлении дополнительных имен серверов, необходимо изменить одно значение в файле /etc/nginx/nginx.conf. Откройте файл:

  • sudo nano /etc/nginx/nginx.conf

Найдите директиву server_names_hash_bucket_size и удалите символ #, чтобы убрать режим комментариев для строки:

/etc/nginx/nginx.conf
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Проверьте ошибки синтаксиса:

  • sudo nginx -t

Перезапустите Nginx, чтобы активировать изменения:

  • sudo systemctl restart nginx

Теперь Nginx должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://your_domain, после чего должны получить примерно следующее:

Первый серверный блок Nginx

Заключение

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

Если вы захотите развернуть более сложный комплекс приложений, ознакомьтесь со статьей «Настройка комплекта LEMP в Ubuntu 20.04».

Creative Commons License