Nginx — один из самых популярных в мире веб-серверов, на базе которого размещены некоторые из самых крупных сайтов интернета с огромным трафиком. Обычно он использует ресурсы эффективнее, чем Apache, и может использоваться как веб-сервер или обратный прокси-сервер.
В этом обучающем модуле мы покажем, как установить Nginx на сервере Ubuntu 20.04. Более подробную версию этого обучающего модуля можно найти в документе Установка Nginx в Ubuntu 20.04.
Поскольку Nginx доступен в хранилищах Ubuntu по умолчанию, вы можете установить его с помощью системы пакетов apt
.
Обновите локальный индекс пакетов:
- sudo apt update
Установите Nginx:
- sudo apt install nginx
Если вы выполнили указания обучающего модуля по предварительной настройке сервера, вы уже активировали брандмауэр UFW. Проверьте доступные профили приложений ufw
с помощью следующей команды:
- sudo ufw app list
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Мы активируем профиль с наибольшими ограничениями, который будет разрешать заданный трафик, а именно трафик на порту 80
:
- sudo ufw allow 'Nginx HTTP'
Проверьте изменения:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Используйте команду systemd
init system, чтобы проверить работу службы:
- systemctl status nginx
Outputnginx.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 по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес:
http://your_server_ip
Вы получите страницу назначения Nginx по умолчанию:
При использовании веб-сервера Nginx вы можете использовать блоки сервера (аналогичные виртуальным хостам в Apache) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен your_domain, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени в DigitalOcean, ознакомьтесь с документом «Введение в DigitalOcean DNS».
Создайте каталог your_domain
, используя флаг -p
для создания необходимых родительских каталогов:
- sudo mkdir -p /var/www/your_domain/html
Назначьте владельца каталога:
- sudo chown -R $USER:$USER /var/www/your_domain/html
Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение umask
. Тем не менее вы можете проверить это с помощью следующей команды:
- sudo chmod -R 755 /var/www/your_domain
Создайте в качестве примера страницу index.html
, используя nano
или свой любимый редактор:
- nano /var/www/your_domain/html/index.html
Добавьте в страницу следующий образец кода HTML:
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>
Сохраните файл и закройте его после завершения.
Создайте новый серверный блок в /etc/nginx/sites-available/your_domain
:
- 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
:
your_domain
: будет отвечать на запросы your_domain
и www.your_domain
.default
: будет отвечать на любые запросы порта 80
, не соответствующие двум другим блокам.Чтобы избежать возможной проблемы с хэшированием памяти при добавлении дополнительных имен серверов, необходимо изменить одно значение в файле /etc/nginx/nginx.conf
. Откройте файл:
- sudo nano /etc/nginx/nginx.conf
Найдите директиву server_names_hash_bucket_size
и удалите символ #
, чтобы убрать режим комментариев для строки:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Проверьте ошибки синтаксиса:
- sudo nginx -t
Перезапустите Nginx, чтобы активировать изменения:
- sudo systemctl restart nginx
Теперь Nginx должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://your_domain
, после чего должны получить примерно следующее:
Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы захотите развернуть более сложный комплекс приложений, ознакомьтесь со статьей «Настройка комплекта LEMP в Ubuntu 20.04».
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 upClick below to sign up and get $100 of credit to try our products over 60 days!