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

Установка и настройка Nginx на Ubuntu — пошаговое руководство

Если вы только купили сервер:
Подключитесь к серверу
Выполните подготовку сервера к работе

  • 1. Установка Nginx
  • 2. Открываем доступ извне (если он закрыт)
  • 3. Где лежат конфиги и как их изменять
  • 4. Создаём конфигурацию сайта
  • 5. Включаем сайт
  • 6. Создаём директорию сайта
  • 7. Логи Nginx: как быстро понять, что происходит
  • 8. Настройка HTTPS (Let's Encrypt)
  • 9. Автообновление сертификатов
  • 10. Что делать, если Nginx не запускается

1. Установка Nginx

Nginx есть в официальных репозиториях Ubuntu, поэтому достаточно выполнить команду

    sudo apt update 
sudo apt install nginx -y
    

apt update обновляет список пакетов, чтобы система точно знала, где взять актуальную версию.
Подробнее про apt: Как установить и удалить программу в Linux через терминал

После установки Nginx сразу запускается как сервис, поэтому дополнительно включать его не нужно.

Проверяем состояние

    sudo systemctl status nginx
    
Проверка статуса nginx

Если увидите статус “active (running)”, то всё в порядке. Если нет, то ниже можно прочитать, что делать в ситуации.
Подробнее о systemctl можно узнать из статьи: Как перезапустить сервис в Linux

2. Открываем доступ извне (если он закрыт)

Чтобы сервер принимал запросы, нужно разрешить 80-й порт (HTTP).

    sudo ufw allow 'Nginx HTTP'
    

UFW - это встроенный файрвол Ubuntu. Если у вас другой, то нужно открыть порт способом, который поддерживает ваш файрвол.
Про ufw: Защита сервера на Ubuntu или Debian с помощью ufw
iptables: Как открыть или закрыть порт в iptables
Если файрвола нет, то не нужно ничего делать

Открытие порта в ufw

3. Где лежат конфиги и как их изменять

Nginx использует структуру каталогов.
Давайте разберём её:

  • /etc/nginx/nginx.conf - главный конфиг
  • /etc/nginx/sites-available/ - здесь лежат конфигурации сайтов
  • /etc/nginx/sites-enabled/ - здесь находятся активированные конфиги (симлинки).

Такой подход позволяет хранить десятки конфигов и включать их по мере необходимости.

4. Создаём конфигурацию сайта

Предположим, ваш домен - example.com.
Вместо домена можно указать и ip адрес, но это подойдет только для тестов и разработки.

Создаём файл:

    sudo nano /etc/nginx/sites-available/example.com
    

Как работать с nano писали в статье: Основы работы с редактором nano: команды, сохранение, выход

Если в дальнейшем планируется размещение нескольких сайтов, то на каждый сайт должен быть такой файл конфигурации.
На одном VDS с одним ip-адресом можно разместить несколько сайтов, количество не ограничено.

Добавляем минимальный конфиг:

    server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
}
    

Почему так

  • server_name говорит Nginx, для какого домена применять настройки.
  • root - папка с файлами сайта.
  • try_files проверяет наличие страниц и защищает от лишних ошибок.

5. Включаем сайт

Создаём симлинк:

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    

Проверяем конфигурацию:

    sudo nginx -t
    

Если увидите syntax is ok - можно перезагружать:

Проверка конфигурации nginx
    sudo systemctl reload nginx
    

Почему reload, а не restart

reload мягко применяет изменения без остановки сервиса. Так сайты не "падают"

6. Создаём директорию сайта

Если её нет, создаём:

    sudo mkdir -p /var/www/example.com 
sudo nano /var/www/example.com/index.html
    

Простейшая страница:

    <h1>Hello</h1>
    

Так вы убедитесь, что конфигурация настроена правильно, прежде чем выкатывать настоящий проект.
На данный момент при переходе на домен или ip, который указан в конфиге в браузере вы увидите вашу страницу

Тестовая страница nginx

7. Логи Nginx: как быстро понять, что происходит

Два основных файла:

  • /var/log/nginx/access.log - запросы
  • /var/log/nginx/error.log - ошибки

Чтобы видеть ошибки в реальном времени:

    tail -f /var/log/nginx/error.log
    

В 80% случаев там сразу видно причину.
Где и как смотреть логи в Linux - команды journalctl, tail и logrotate

8. Настройка HTTPS (Let's Encrypt)

Устанавливаем certbot:

    sudo apt install certbot python3-certbot-nginx -y
    

Получаем сертификат:

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

Certbot автоматически обновляет конфиги Nginx и создает задачу обновления сертификатов.
Если вдруг сертификат не обновится - certbot пришлёт письмо на почту, которую вы укажете.

9. Автообновление сертификатов

Проверить обновление можно так:

    sudo certbot renew --dry-run
    

Если тест прошёл - всё настроено правильно.

10. Что делать, если Nginx не запускается

Вот короткий чек-лист, который я использую сам:

  1. Проверить конфигурацию
    sudo nginx -t
    
  1. Посмотреть логи
    tail -f /var/log/nginx/error.log
    
  1. Проверить порты
    sudo lsof -i :80
    

Чаще всего порт занят другим сервисом, например, Apache. В этом нет ничего страшного, просто остановите то, что вам не нужно. или смените порт на нестандартный.

Полезные фишки

1. Быстрый перезапуск Nginx без падений

    sudo systemctl reload nginx
    

2. Быстро проверить, что конфиг корректный

    nginx -t
    

3. Сжать ответы и ускорить сайт
Добавьте в /etc/nginx/nginx.conf:

    gzip on;
gzip_types text/plain text/css application/json application/javascript;
    

4. Увеличить скорость отдачи статических файлов
В блоке server:

    location ~* \.(jpg|jpeg|png|css|js|ico)$ {
    expires max;
    access_log off;
}
    
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 Все права защищены
ВВЕРХ