Как установить 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
.
Обновите локальный индекс пакетов:
- sudo apt update
Установите Nginx:
- sudo apt install nginx
Шаг 2 – Настройка брандмауэра
Если вы следовали указаниям по установке необходимого сервера, значит, у вас включен брандмауэр 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)
Шаг 3 — Проверка вашего веб-сервера
Проверьте с помощью системы инициализации systemd
, чтобы убедиться, что служба запущена, набрав:
- 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
для создания необходимых родительских каталогов:
- sudo mkdir -p /var/www/example.com/html
Назначьте владельца каталога:
- sudo chown -R $USER:$USER /var/www/example.com/html
Разрешения ваших корневых веб-сайтов должны быть правильными, если вы не изменили значение umask
, но вы можете убедиться, набрав:
- sudo chmod -R 755 /var/www/example.com
Создайте образец страницы index.html
с помощью nano
или вашего любимого редактора:
- 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
:
- 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
:
- 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
. Откройте файл:
- 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://example.com
, где вы должны увидеть что-то вроде этого:
Заключение
Теперь, когда у вас установлен веб-сервер, у вас есть множество вариантов типа контента для обслуживания и технологий, которые вы хотите использовать для создания более богатого опыта.
Если вы хотите создать более полный стек приложений, ознакомьтесь с этой статьей о том, как настроить стек LEMP в Ubuntu 18.04.