Главная
|
Услуги и цены
VDS
Выделенные серверы
Размещение сервера
|
F.A.Q
|
О компании
|

Инструкция по установке и настройке Nginx

  • Подготовка
  • Установка и настройка Nginx
  • SSL-сертификат (HTTPS)
  • Распространённые ошибки
  • Несколько сайтов или поддомены
  • Оптимизация работы

Инструкция подойдет для Ubuntu и Debian.
В CentOS вместо apt будет использоваться dnf, вместо ufw будет firewall-cmd

Подготовка

1. Подключитесь к серверу

Используйте ip, логин и пароль из личного кабинета

Подключение к серверу

И любой ssh-клиент, например PuTTY

2. Подготовка сервера

Обновление системы:

	apt update && apt upgrade -y
	

☕️ Выполнение команды может занять некоторое время, особенно при выполнении в первый раз.

3. Далее можно создать отдельного пользователя, что бы не работать через root.
Подробнее о создании и управлении пользователями написано в статье: Создание и управление пользователями в Linux: команды adduser, usermod и userdel

Установка и настройка Nginx

1. Установите Nginx

	apt install nginx -y
	

Запустите, проверьте статус:

	systemctl start nginx
systemctl enable nginx
systemctl status nginx
	

Должен быть статус enabled

Статус Nginx

2. Настройте фаервол

На серверах 62yun по умолчанию открыты все порты, если вы их закрывали, то для работы веб-сервера нужно будет открыть 80(HTTP) и 443(HTTPS) порты

	ufw allow 'Nginx Full'
ufw enable
ufw status
	

3. Настройте виртуальный хост

	nano /etc/nginx/sites-available/example
	

example - имя для вашего сайта/приложения.

Если сайтов будет несколько, то для каждого нужен будет такой файл
Пример базовой конфигурации (сайт откроется на ip адресе, HTTPS не будет):

	server {
    listen 80; # сервер удет слушать HTTP-запросы на 80 порту. Если нужен HTTPS, то добавьте отельный блок, либо только блок HTTPS
    server_name 147.45.125.57; # если у вас есть домен, то используйте домен (example.com www.example.com;)
    root /var/www/example; # путь к корневой директории вашего проекта
    index index.html index.htm; # главные файлы, которые буут открываться при переходе на сайт

    location / { # основной маршрут для обработки запросов
        try_files $uri $uri/ =404; # выдаёт 404, если запрошенного файла не существует
    }
}
	

Сохраните и закройте редактор:

ctrl-X, Y, Enter

Активируйте конфиг:

	ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
	

Проверьте ошибки в конфигурации:

	nginx -t
	

Если ошибок в конфигурации нет, то вы получите сообщение:

Проверка конфигурации

Перезапустите Nginx

	systemctl restart nginx
	

На этом этапе вы перейдя по http://ip-адрес/ в браузере увидите содержимое страницы, указанной в конфиге (у нас это index.html)

Работающий Nginx

SSL-сертификат (HTTPS)

1. Установите SSL (Let's Encrypt)

Если у вас есть домен и нужен сайт на https://, то нужно установить SSL-сертификат.
Бесплатно это можно сделать с помощью Cerbot
Установка Cerbot:

	apt install certbot python3-certbot-nginx -y
	

2. Получите сертификат

	certbot --nginx -d example.com -d www.example.com
	

3. Проверка автообновления

Сертификат выпускается на ограниченное время, поэтому его нужно регулярно обновлять.
С помощью Cerbot это делается автоматически.
Проверить автообновление можно командой

	certbot renew --dry-run
	

Внесите изменения в конфигурацию nginx, если это необходимо

	server {
    listen 443 ssl; # порт для HTTPS
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # пути к ключам сертификата
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    root /var/www/example;
    index index.html;
}
	

Теперь сайт будет доступен по https://example.com

Распространённые ошибки

404 Not Found

Ошибка означает, что не найден такой ресурс.
Это ошибка конфигурации.
Скопируйте значение из root в конфигурации и проверьте, существует ли директория, есть ли в ней указанные в конфиге файлы

	ls /var/www/example
	

Например, если была опечатка в путях, то вы получите сообщение, что такой директории нет

Ошибка 404

Также проверьте пути в location, правильный ли server_name
Исправьте пути, перезапустите Nginx и ошибка исправится.

502 Bad Gateway

Ошибка означает проблему на стороне backend-сервера

Несколько сайтов или поддомены

На одном веб сервере могут размещаться несколько сайтов или поддоменов одного сайта.
Для этого нужно повторить все пункты из раздела Установка и настройка Nginx пункт 3 (Настройте виртуальный хост) для каждого сайта или поддомена.
Создайте отдельные файлы конфигурации для каждого сайта, установите отельный ssl-сертификат.

Оптимизация работы

Блокировка определенного ip/подсети

	server {
    ...
    location / {
        deny ip_addr; # запретить определенному ip доступ (вместо ip_addr напишите реальный ip)
        deny ip_addr/24; # запретить доступ для всех ip подсети
        allow all; # разрешить всем
    }
}
	

Теперь пользователь, которому доступ запрещен при входе на сайт получит ошибку:

Блокировка IP

Включение Gzip

Вы можете ускорить загрузку сайта, включив gzip в /etc/nginx/nginx.conf
Найдите в этом файле строки:

	gzip_vary on;
gzip_min_length 10240;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
	

Если они закомментированы (начинаются с #), то раскомментируйте.
Если их нет, то добавьте.
Это уменьшит размер файлов вашего сайта и ускорит передачу данных.

Оптимизация рабочих процессов

В /etc/nginx/nginx.conf
Найдите блок events.
Добавьте в него worker_processes auto; и worker_connections 1024;

	events {
	worker_processes auto; # количество рабочих процессов равно числу ядер процессора
	worker_connections 1024; # максимальное число одновременных соединений
}
	
logo
© 2022 62yun
Все права защищены
vk.com/62yuncom
support@62yun.ru
logo
vk.com/62yuncom
support@62yun.ru
Услуги
VDS Выделенные серверы
Полезное
F.A.Q О компании Политика конфиденциальности Оферта
Способы оплаты
wechatpay visa mastercard
MirAccept
Партнеры
25port
© 2022 62yun Все права защищены
ВВЕРХ