// Tutorial //

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

Published on January 7, 2020
Default avatar
By Kathleen Juell
Developer and author at DigitalOcean.
[Краткое руководство] по установке Nginx в Ubuntu 18.04

Введение

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

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

Предварительные требования

Для прохождения этого обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 18.04 и обычный пользователь без прав root с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр, следуя указаниям руководства Начальная настройка сервера Ubuntu 18.04.

Создав учетную запись, войдите в систему как пользователь без привилегий root.

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

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

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

  1. sudo apt update

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

  1. sudo apt install nginx

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

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

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

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

  1. sudo ufw allow 'Nginx HTTP'

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

  1. 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, чтобы проверить работу службы:

  1. 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: enabled) Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process

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

http://your_server_ip

Вы увидите начальную страницу Nginx по умолчанию:

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

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

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

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

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

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

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

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

  1. sudo chmod -R 755 /var/www/example.com

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

  1. nano /var/www/example.com/html/index.html

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

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

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

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

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

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

/etc/nginx/sites-available/example.com
server {
        listen 80;
        listen [::]:80;

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

        server_name example.com www.example.com;

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

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

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

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

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

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

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

  1. sudo nano /etc/nginx/nginx.conf

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

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

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

  1. sudo nginx -t

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

  1. sudo systemctl restart nginx

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

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

Заключение

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

Если вы хотите развернуть более сложный набор обслуживания приложений, ознакомьтесь с этой статьей о настройке набора LEMP в Ubuntu 18.04.


Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?
Leave a comment