Nginx — это самый распространенный веб-сервер, который можно использовать также как прокси или почтовый сервер.
В этой статье мы пошагово разберем установку на Ubuntu
Установка Nginx
В первую очередь, если у вас этого ещё не сделано, стоит обновить пакеты:
sudo apt update
После установить Nginx из официального репозитория:
sudo apt install nginx
Добавляем в автозагрузку:
sudo systemctl enable nginx
И проверяем, что сервис запущен:
sudo systemctl status nginx
В ответ на это мы должны увидеть Active
Теперь, чтобы точно убедиться в том, что веб-сервер запущен перейдите в браузере по IP-адресу своего сайта, и должна высветиться вот такая страница
Если сайт не загружается, то проверьте, открыт ли порт 80 на вашей машине. Если вы до этого ничего не настраивали, то у хостера может быть свой собственный фаервол, и добавить порт в исключения надо в нём
Настройка фаервола
Это не обязательный для работы пункт, но крайне желательный, чтобы обезопасить сервер от атак извне.
Скачиваем улититу UFW:
sudo apt install ufw
Разрешаем подключение по SSH:
ufw allow SSH
Разрешаем стандартные порты (80 для подключения по http, 443 для дальнейшей настройки на https):
ufw allow 80 ufw allow 443
Можно запускать фаервол:
ufw enable
Теперь можно посмотреть какие правила активны:
ufw status
Настройка виртуальных хостов Nginx
На один сервер можно повесить сразу несколько доменов, но даже если у вас будет всего один, требуется настроить для него отдельный виртуальный хост, в первую очередь создадим директорию, в которой будут храниться файлы сайта, располагаться они должны в /var/www:
sudo mkdir -p /var/www/YOUR.SITE/html
И для теста создайте небольшой файл:
sudo nano /var/www/YOUR.SITE/html/index.html
<!DOCTYPE html> <html lang="ru"> <head> <title>YOUR.SITE</title> <meta charset="utf-8"> </head> <body> <h1>Site work!!!</h1> </body> </html>
Сохраняем, следующим шагом необходимо создать сам виртуальный хост, они должны храниться в /etc/nginx/sites-available/:
sudo nano /etc/nginx/sites-available/YOUR.SITE.conf
server { listen 80; listen [::]:80; server_name YOUR.SITE www.YOUR.SITE; root /var/www/YOUR.SITE/html; index index.html; }
- listen 80 — прослушивание 80 порта
- server_name — указываем, что работаем с доменом YOUR.SITE
- root — директория, в которой расположены файлы сайта
- index — файл, который будет первым загружен при заходе на сайт, можно указать несколько через пробел, загрузится первый существующий
Осталось разве что активировать сайт, для этого создайте ссылку в директории /etc/nginx/sites-enabled/ на созданную конфигурацию:
sudo ln -s /etc/nginx/sites-available/YOUR.SITE.conf /etc/nginx/sites-enabled/
Проверьте, что всё настроено правильно:
sudo nginx -t
Если ошибок не выдало, то удалите дефолтный конфиг:
sudo rm /etc/nginx/sites-enabled/default
Перезагрузите Nginx:
sudo systemctl restart nginx
Теперь осталось зайти на сайт по домену и проверить что всё работает
Заключение
Мы базово настроили Nginx на ubuntu, следующим шагом идёт установка SSL сертификата и создание редиректа с HTTP на HTTPS, также вам может быть интересна установка WordPress на Nginx.