Инструкция подойдет для Ubuntu и Debian.
В CentOS вместо apt
будет использоваться dnf
, вместо ufw
будет firewall-cmd
Используйте ip, логин и пароль из личного кабинета
И любой ssh-клиент, например PuTTY
Обновление системы:
apt update && apt upgrade -y
☕️ Выполнение команды может занять некоторое время, особенно при выполнении в первый раз.
3. Далее можно создать отдельного пользователя, что бы не работать через root
.
Подробнее о создании и управлении пользователями написано в статье: Создание и управление пользователями в Linux: команды adduser, usermod и userdel
apt install nginx -y
Запустите, проверьте статус:
systemctl start nginx
systemctl enable nginx
systemctl status nginx
Должен быть статус enabled
На серверах 62yun по умолчанию открыты все порты, если вы их закрывали, то для работы веб-сервера нужно будет открыть 80(HTTP) и 443(HTTPS) порты
ufw allow 'Nginx Full'
ufw enable
ufw status
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
Если ошибок в конфигурации нет, то вы получите сообщение:
systemctl restart nginx
На этом этапе вы перейдя по http://ip-адрес/
в браузере увидите содержимое страницы, указанной в конфиге (у нас это index.html)
Если у вас есть домен и нужен сайт на https://, то нужно установить SSL-сертификат.
Бесплатно это можно сделать с помощью Cerbot
Установка Cerbot:
apt install certbot python3-certbot-nginx -y
certbot --nginx -d example.com -d www.example.com
Сертификат выпускается на ограниченное время, поэтому его нужно регулярно обновлять.
С помощью 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
Ошибка означает, что не найден такой ресурс.
Это ошибка конфигурации.
Скопируйте значение из root
в конфигурации и проверьте, существует ли директория, есть ли в ней указанные в конфиге файлы
ls /var/www/example
Например, если была опечатка в путях, то вы получите сообщение, что такой директории нет
Также проверьте пути в location
, правильный ли server_name
Исправьте пути, перезапустите Nginx и ошибка исправится.
Ошибка означает проблему на стороне backend-сервера
На одном веб сервере могут размещаться несколько сайтов или поддоменов одного сайта.
Для этого нужно повторить все пункты из раздела Установка и настройка Nginx пункт 3 (Настройте виртуальный хост) для каждого сайта или поддомена.
Создайте отдельные файлы конфигурации для каждого сайта, установите отельный ssl-сертификат.
server {
...
location / {
deny ip_addr; # запретить определенному ip доступ (вместо ip_addr напишите реальный ip)
deny ip_addr/24; # запретить доступ для всех ip подсети
allow all; # разрешить всем
}
}
Теперь пользователь, которому доступ запрещен при входе на сайт получит ошибку:
Вы можете ускорить загрузку сайта, включив 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; # максимальное число одновременных соединений
}