Поиск по сайту:

Как установить 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, чтобы убедиться, что служба запущена, набрав:

  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 по умолчанию:

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

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

Создайте каталог для 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:

<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

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

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/

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

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

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

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

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

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Тест на синтаксические ошибки:

  1. sudo nginx -t

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

  1. sudo systemctl restart nginx

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

Заключение

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

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