Установка и настройка Nginx
| Уровень сложности | Лёгкий |
| Права root | Требуются |
| Требования | Терминал Linux |
| Категория | Установка ПО |
| Совместимость с ОС | Debian, Ubuntu |
| Примерное время чтения | 1 час |
Введение
Nginx - это производительный веб-сервер, который используется для размещения сайтов, работы в роли reverse proxy и балансировщика нагрузки.
В данной инструкции рассмотрим полный базовый сценарий:
- установка Nginx
- настройка тестового сайта
- подключение PHP (php-fpm)
- подготовка конфигурации под SSL (Let’s Encrypt)
Установка
В инструкции будет использоваться домен tex-lab.ru и IP сервера 62.173.138.27 как пример. Обязательно замените их на свои реальные домен и IP при настройке.
Обновим список пакетов:
apt update
Установим Nginx:
apt install nginx -y
Проверим статус:
systemctl status nginx
Сервис должен быть в состоянии active (running).
Проверка работы
Открой в браузере:
http://IP_СЕРВЕРА
Если отображается стандартная страница, то Nginx работает.
Основные пути
Основной конфиг:
/etc/nginx/nginx.conf
Конфиги сайтов:
/etc/nginx/sites-available/
Активные сайты:
/etc/nginx/sites-enabled/
Каталог сайта:
/var/www/
Создание тестового сайта
Создадим директорию:
mkdir -p /var/www/tex-lab
Создадим HTML-файл:
nano /var/www/tex-lab/index.html
Пример содержимого:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tex-lab.ru</title>
</head>
<body>
<h1>Работает!</h1>
<p>Сайт tex-lab.ru успешно настроен</p>
</body>
</html>
Настройка сайта в Nginx
Создадим конфиг:
nano /etc/nginx/sites-available/tex-lab
Пример:
server {
listen 80;
server_name tex-lab.ru www.tex-lab.ru;
root /var/www/tex-lab;
index index.html;
access_log /var/log/nginx/tex-lab.access.log;
error_log /var/log/nginx/tex-lab.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Активируем сайт:
ln -s /etc/nginx/sites-available/tex-lab /etc/nginx/sites-enabled/
Проверим конфиг:
nginx -t
Применим:
systemctl reload nginx
Далее надо открыть в браузере сайт и должна появится страница с нашим текстом:
Установка PHP
Установим PHP и php-fpm:
apt install php-fpm php-cli php-mysql -y
Проверим:
systemctl status php*-fpm.service
Подключение PHP в Nginx
Откроем конфиг сайта:
nano /etc/nginx/sites-available/tex-lab
Обновим:
server {
listen 80;
server_name tex-lab.ru www.tex-lab.ru;
root /var/www/tex-lab;
index index.php index.html;
access_log /var/log/nginx/tex-lab.access.log;
error_log /var/log/nginx/tex-lab.error.log;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
В этой строчке надо указать версию PHP на момент установки, иначе Вы получите ошибку 502
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
Проверка PHP
Создадим файл:
nano /var/www/tex-lab/info.php
Содержимое:
<?php phpinfo(); ?>
Применим:
systemctl reload nginx
Откройте:
http://tex-lab.ru/info.php
После проверки работоспособности обязательно удалите этот файл, так как он плохо влияет на безопасность!
rm /var/www/tex-lab/info.php
Подключение SSL-сертификата
В примере мы подключаем сертификат Let’s Encrypt, который Вы можете выпустить по нашей инструкции, но можно подключить так любой сертификат.
Откроем конфиг:
nano /etc/nginx/sites-available/tex-lab
И сделаем так:
server {
listen 80;
server_name tex-lab.ru www.tex-lab.ru;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name tex-lab.ru www.tex-lab.ru;
root /var/www/tex-lab;
index index.php index.html;
ssl_certificate /etc/letsencrypt/live/tex-lab.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tex-lab.ru/privkey.pem;
access_log /var/log/nginx/tex-lab.access.log;
error_log /var/log/nginx/tex-lab.error.log;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Проверка конфига:
nginx -t
Перезапуск:
systemctl restart nginx
Заключение
В рамках данной инструкции была выполнена базовая настройка веб-сервера Nginx на Debian с подготовкой окружения для размещения сайта и обработки PHP, а также добавлена конфигурация для последующего подключения SSL-сертификата.
Полученная конфигурация может использоваться как отправная точка для дальнейшего развёртывания и доработки проекта с учётом требований к производительности, безопасности и стабильности.









