На сегодняшний день Nginx является одним из самых распространённых веб-серверов, используемым огромным количеством сайтов в интернете. Ниже, о том, как установить и настроить Nginx Server Blocks на сервере с установленной Ubuntu 20.04.
Установка Nginx
Nginx можно установить из репозиториев Ubuntu, поэтому для исталляции пакета необходимо ввести следующие команды, подключившись для этого к системе с помощью учётной записи, имеющей привилегию на запуск утилиты sudo
:
$ sudo apt update
Первая команда обновляет список пакетов вашей системы.
$ sudo apt install nginx
Вторая команда как раз и выполняет установку элементов сервера Nginx на вашу систему.
Настройка веб-сервера Nginx
Здесь важно понимать, что Nginx использует интерфейс межсетевого экрана Uncomplicated FireWall (UFW), поэтому первым делом нужно произвести настройку брандмауэра Ubuntu. Доступные приложения, о которых знает UFW, можно увидеть набрав в командной строке:
$ sudo ufw app list
В нашем случае имеет смысл разрешить трафик HTTP. Для этого необходимо ввести:
$ sudo ufw allow 'Nginx HTTP'
Не будет лишним увидеть статус UFW после произведённых манипуляций:
$ sudo ufw status
И, наконец, чтобы проверить статус установленного веб-сервера, используйте следующую инструкцию:
$ systemctl status nginx
Из скриншота выше видно, служба Nginx запущена. Теперь, можно попробовать войти на установленный веб-сервер, используя браузер. Для этого в командной строке браузера необходимо набрать: http://server_ip_address
, где server_ip_address
– IP-адрес вашего VPS. Он находится в закладке “Мои серверы”:
Если всё сделано верно, браузер должен показать стартовую страницу Nginx:
Настройка Nginx Server Blocks
Стоит отметить, что веб-сервер Nginx может служить хостингом не только одного, но и нескольких сайтов одновременно. Для этого необходимо создать на нём дополнительные виртуальные хосты, каждый из которых будет хранить данные своего отдельного домена.
Данные сайта изначально расположены в каталоге /var/www/html
. Чтобы добавить ещё один домен, необходимо создать директорию /my-domain.host/html
, где my-domain.host
– имя создаваемого домена, в /var/www
с соответствующими правами:
$sudo mkdir -p /var/www/my-domain.host/html
$sudo chown -R $USER:$USER /var/www/my-domain.host/html
$sudo chmod -R 755 /var/www/my-domain
.host
Теперь, когда есть директория домена, в ней можно создать файл страницы сайта index.html
:
$ sudo nano /var/www/my-domain.host/html/index.html
Файл index.html
:
<html>
<head>
<title>
Domain
on Nginx</title>
</head>
<body>
<h1>
Connection to my-domain.host is created successfully!
!!</h1>
</body>
</html>
Чтобы сохранить изменения и выйти из текстового редактора используйте CNTRL X
, после чего Y
и Enter
.
Далее, в каталоге /etc/nginx/sites-available/
необходимо создать файл my-domain.host
:
$ sudo nano /etc/nginx/sites-available/my-domain.host
и скопируйте в него:
server
{
listen 80;
listen [::]:80;
root /var/www/my-domain.host/html;
index index.html index.htm index.nginx-debian.html;
server_name my-domain.host www.my-domain.host;
location /
{
try_files $uri $uri/ =404;
}
}
После того, как произведена замена server_name на имя вашего домена, необходимо создать ссылку в /etc/nginx/sites-enabled/
:
$ sudo ln -s /etc/nginx/sites-available/my-domain.host /etc/nginx/sites-enabled/
Также, необходимо отредактировать файл /etc/nginx/nginx.conf
:
$ sudo nano /etc/nginx/nginx.conf
а именно, раскомментируйте строку, содержащую server_names_hash_bucket_size
, удалив символ #
. Перед выходом из текстового редактора не забудьте сохранить произведённые изменения (CNTRL X
, после чего Y
и Enter
).
Для выявления возможных ошибок в файлах Nginx введите:
$ sudo nginx -t
Если ошибок нет, вывод команды должен быть таким:
Следующим шагом Nginx следует перезапустить:
$ sudo systemctl restart nginx
После произведённых действий Nginx готов обслуживать новый виртуальный хост. Чтобы убедиться в этом, откройте добавленный домен в браузере. Сообщение на странице будет выглядеть как:
На этом всё. Теперь вы знаете, как настроить Nginx Server Blocks и настройка виртуальных хостов завершена. Ваш хостинг теперь успешно функционирует!