Как установить NGINX на Ubuntu 18.04

Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Как установить NGINX на Ubuntu 18.04
Введение
Nginx является одним из самых популярных веб-серверов в мире и отвечает за хостинг некоторых крупных и посещаемых ресурсов сети. По многим параметрам nginx менее затратный с точки зрения ресурсов сервер, чем Apache, и его можно использовать как веб-сервер либо обратный прокси.

Из данного руководства вы узнаете о том, как правильно установить nginx на Ubuntu 18.04.

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

Как только вы создадите такой аккаунт, авторизуйтесь в качестве этого пользователя перед выполнением следующих шагов.

Шаг 1: установка nginx
Так как nginx по умолчанию доступен в репозиториях Ubuntu, его можно установить прямо из них при помощи пакетного менеджера apt.

Но так как в этой сессии вы будете первый раз обращаться к пакетному менеджеру, то сначала необходимо обновить локальный индекс пакетов. Это позволит получить доступ к самым актуальным на данный момент спискам пакетов. И только после этого нужно перейти к установке nginx:

$ sudo apt update

$ sudo apt install nginx
После выполнения команды пакетный менеджер установит nginx и все необходимые зависимости на ваш сервер.

Шаг 2: настройка фаервола
Перед тестированием nginx необходимо настроить фаервол для того, чтобы дать доступ сервису. Nginx регистрирует себя как сервис с утилитой ufw - благодаря этому дать доступ nginx довольно легко.

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

$ sudo ufw app list
Вам высветится вот такой список:

Available applications:

Nginx Full

Nginx HTTP

Nginx HTTPS

OpenSSH
То есть для nginx доступы 3 профиля:

Nginx Full: профиль открывает два порта – 80 (обычный, незашифрованный веб-трафик) и 443 (TLS/SSL зашифрованный трафик)
Nginx HTTP: профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
Nginx HTTPS: профиль открывает только порт 443 (TLS/SSL зашифрованный трафик)
Рекомендуется включать наиболее ограниченный профиль, но при условии, что он будет пропускать тот трафик, который вы настроили. Так как SSL-протокол пока еще не настроен, вам нужно открыть порт 80 для обычного трафика.

Введите команду:

$ sudo ufw allow 'Nginx HTTP'
Проверить изменения можно командой:

$ sudo ufw status
В выводе вы увидите, что HTTP-трафик разрешен:

Status: active

To Action From

-- ------ ----

OpenSSH ALLOW Anywhere

Nginx HTTP ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

Nginx HTTP (v6) ALLOW Anywhere (v6)
Шаг 3: проверка работы веб-сервера
В конце установки Ubuntu 18.04 запустит nginx. Веб-сервер уже должен работать.

Это можно проверить следующей командой:

$ systemctl status nginx
Вывод будет выглядеть примерно так:

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-адрес вашего сервера.

Если вы его не знаете, то есть следующие варианты выяснить:

1.Введите в командной строке:

$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Вы увидите несколько строк - попробуйте каждую из них в браузере.

2. Можно также получить публичный IP-адрес своего сервера:

$ curl -4 icanhazip.com
После того, как IP-адрес получен, введите его в адресную строку браузера.

http://ip-адрес сервера

Должна загрузиться приветственная страница nginx:

Как установить NGINX на Ubuntu 18.04, изображение №2
Если она высветилась, значит, сервер работает правильно.

Шаг 4: работа с nginx
В этом разделе вы познакомитесь с основными командами управления веб-сервером.

Команда для того, чтобы остановить веб-сервер:

$ sudo systemctl stop nginx
Запустить веб-сервер после остановки:

$ sudo systemctl start nginx
Перезапустить сервис (остановить и снова запустить):

$ sudo systemctl restart nginx
Если вы вносите конфигурационные изменения, nginx можно перезагрузить без потери соединений. Для этого введите команду:

$ sudo systemctl reload nginx
Nginx по умолчанию начинает работу в то же время, когда и сервер. Но эту логику можно изменить следующей командой:

$ sudo systemctl disable nginx
Если вам снова нужно сделать так, чтобы сервис начинал работу одновременно с сервером, введите:

$ sudo systemctl enable nginx
Шаг 5: настройка серверных блоков
Если вам нужно, чтобы сервер обслуживал больше одного домена, то используйте серверные блоки (то есть блоки server). Эти блоки похожи на виртуальные хосты в Apache. В данном руководстве речь будет идти о домене test.ru, вам нужно вписать вместо него ваш собственный домен.

По умолчанию у nginx на Ubuntu 18.04 включен лишь один серверный блок по умолчанию. Он настроен обслуживать файлы в директории /var/www/html. Это хорошо работает для отдельного сайта, но абсолютно неудобно, если нужно разместить несколько сайтов.

Для начала создайте директорию внутри /var/www для сайта test.ru:

$ sudo mkdir -p /var/www/test.ru/html
/var/www/html останется как директория по умолчанию и будет использоваться в тех случаях, когда клиентский запрос не совпадает ни с одним другим сайтом.

Теперь нужно указать права:

$ sudo chown -R $USER:$USER /var/www/test.ru/html

$ sudo chmod -R 755 /var/www/test.ru
Далее создайте пример страницы index.html, используя nano или любой другой редактор:

$ nano /var/www/test.ru/html/index.html
Скопируйте в файл код ниже:

<html>

<head>

<title>Welcome to Test.ru!</title>

</head>

<body>

<h1>Success! The test.ru server block is working!</h1>

</body>

</html>
Сохраните и закройте файл.

Для того, чтобы nginx правильно отображал информацию, нужно создать серверный блок с нужными директивами. Вместо редактирования стандартного конфигурационного файла создайте новый в /etc/nginx/sites-available/test.ru:

$ sudo nano /etc/nginx/sites-available/test.ru
Скопируйте туда следующий конфигурационный блок. Он похож на тот, который идет по умолчанию, однако имеет новую директорию (root) и доменное имя (server_name).

server {

listen 80;

listen [::]:80;

root /var/www/test.ru/html;

index index.html index.htm index.nginx-debian.html;

server_name test.ru www.test.ru;

location / {

try_files $uri $uri/ =404;

}

}
Теперь нужно сделать файл доступным, создав ссылку на него в директории sites-enabled:

$ sudo ln -s /etc/nginx/sites-available/test.ru /etc/nginx/sites-enabled/
Теперь два серверных блока включены, настроены и будут использоваться в зависимости от их директив listen и server_name:

test.ru: отвечает на запросы test.ru и www.test.ru.
default: отвечает на все остальные запросы порта 80, которые не совпадают с двумя другими блоками.
Для того, чтобы избежать возможной проблемы с хэшем из-за дополнительных серверных имен, необходимо изменить настройки в конфигурационном файле. Откройте его:

$ sudo nano /etc/nginx/nginx.conf
Найдите директиву server_names_hash_bucket_size и раскомментируйте эту строку (уберите символ #):

...

http {

...

server_names_hash_bucket_size 64;

...

}

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

Теперь нужно убедиться, что в файлах nginx нет синтаксических ошибок:

$ sudo nginx -t
Если все нормально, то перезапустите nginx для того, чтобы изменения вступили в силу:

$ sudo systemctl restart nginx
Теперь nginx должен обслуживать ваше доменное имя. Введите его в браузере. Вы должны увидеть надпись “Success! The test.ru server block is working!”.

Если вы увидели эту надпись, значит, все настроено и работает правильно.
17:04
61
RSS
Нет комментариев. Ваш будет первым!
Загрузка...