Site icon 8HOST.COM

Быстрая установка Nginx в Ubuntu 20.04

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

Данный мануал поможет установить Nginx на сервер Ubuntu 20.04.

Примечание: Расширенную версию этого мануала вы найдете здесь.

Требования

Для работы нужен сервер Ubuntu 20.04, настроенный по этому мануалу.

Чтобы начать работу, войдите на сервер как пользователь sudo.

1: Установка Nginx

Пакет Nginx можно найти в стандартном репозитории Ubuntu и установить с помощью пакетного менеджера apt.

Если это ваше первое взаимодействие с системой пакетирования apt в текущей сессии, вы должны обновить индекс пакетов. После этого можно установить Nginx.

sudo apt update
sudo apt install nginx

2: Настройка брандмауэра

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

Просмотрите список доступных профилей ufw:

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

Лучше использовать профиль, который поддерживает шифрование. Но поскольку на свежем сервере ещё не настроен SSL, мы можем открыть только порт 80, за который отвечает профиль Nginx HTTP.

Чтобы включить соответствующий профиль, введите:

sudo ufw allow 'Nginx HTTP'

Убедитесь в том, что он включился:

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

3: Тестирование веб-сервера

Чтобы убедиться в том, что Nginx запустился, запросите его состояние в системе инициализации systemd.

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:>
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, чтобы убедиться, что веб-сервер работает. Введите в браузер:

http://your_server_ip

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

Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

4: Настройка виртуального хоста (рекомендуется)

На веб-сервере Nginx можно использовать виртуальные хосты (в контексте Nginx они называются блоками server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь мы используем условный домен your_domain.com, но вы должны заменить его собственным доменом.

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

sudo mkdir -p /var/www/your_domain.com/html

Затем установите права на каталог с помощью переменной $USER:

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

Права должны быть установлены верно, если вы не поменяли unmask, но на всякий случай вы можете ввести такую команду:

sudo chmod -R 755 /var/www/your_domain

Затем создайте образец страницы index.html с помощью nano или другого редактора:

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

Вставьте в файл такие строки:

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

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

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

sudo nano /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:

Читайте также: Алгоритмы выбора блоков server и location в Nginx

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

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 обслуживает домен вашего сайта. Чтобы убедиться в этом, откройте ссылку http://your_domain в браузере.

Success!  The your_domain.com server block is working!

Заключение

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

Читайте также: Установка стека LEMP в Ubuntu 20.04