Установка и безопасность
Шаг 1: Установка Nginx
Обновите список пакетов и установите Nginx из стандартных репозиториев Debian/Ubuntu.
sudo apt update && sudo apt install -y nginx
Шаг 2: Управление службой Nginx
Основные команды для управления состоянием службы Nginx.
Проверить статус:
sudo systemctl status nginx
Добавить в автозагрузку:
sudo systemctl enable nginx
Перезапустить Nginx (требуется после изменения конфигураций):
sudo systemctl restart nginx
Шаг 3: Настройка брандмауэра (iptables)
Чтобы Nginx был доступен извне, необходимо открыть порты 80 (HTTP) и 443 (HTTPS). Для сохранения правил после перезагрузки рекомендуется использовать пакет `iptables-persistent`.
Сначала установите пакет для сохранения правил:
sudo apt install -y iptables-persistent
Затем добавьте правила для портов 80 и 443. -I INPUT 5 вставляет правило на 5-ю позицию. Номер может потребоваться изменить в зависимости от вашей конфигурации.
sudo iptables -I INPUT 5 -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -I INPUT 6 -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Наконец, сохраните текущие правила, чтобы они применялись после перезагрузки:
sudo netfilter-persistent save
Пример базового файла /etc/nginx/nginx.conf
Это основной конфигурационный файл, который задает глобальные параметры работы веб-сервера. Редактировать его нужно с осторожностью.
# Указывает пользователя, от имени которого будут работать рабочие процессы Nginx.
# Рекомендуется использовать специального пользователя (www-data) для безопасности.
user www-data;
# Количество рабочих процессов. 'auto' — оптимальный вариант, Nginx сам определит
# количество, равное числу ядер процессора.
worker_processes auto;
# Путь к файлу, где будет храниться PID главного процесса Nginx.
pid /run/nginx.pid;
# Включает файлы с дополнительными модулями, если они установлены.
include /etc/nginx/modules-enabled/*.conf;
events {
# Максимальное количество одновременных соединений, которое может
# обработать один рабочий процесс. Общий лимит = worker_processes * worker_connections.
worker_connections 768;
# multi_accept on; # Позволяет рабочему процессу принимать все новые соединения сразу.
}
http {
# Базовые настройки для обработки MIME-типов файлов.
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off; # Скрывает версию Nginx в ответах сервера.
# Путь к файлу с MIME-типами.
include /etc/nginx/mime.types;
# MIME-тип по умолчанию.
default_type application/octet-stream;
# Настройки для логирования.
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# Настройки для Gzip-сжатия. Уменьшает размер передаваемых данных.
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json ...;
# Подключение конфигурационных файлов для каждого отдельного сайта (виртуального хоста).
# Это главная директива, которая делает конфигурацию модульной.
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}