Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Как установить Nginx На сервере Linux (пошаговое руководство 2026 г.)

Последнее обновление: сентябрь 7, 2026 9 min read Прахлад Праджапати
Установите Nginx в Linux

Для установки Nginx на сервере LinuxОбновите пакеты, установите пакет nginx, запустите и включите службу, откройте порты 80/443 в брандмауэре и проверьте стандартную приветственную страницу. В Ubuntu/Debian используйте apt; в RHEL/CentOS/AlmaLinux используйте dnf. Затем настройте блокировку сервера, включите HTTPS с помощью Let's Encrypt и перезагрузите систему. Nginx.

В этом руководстве вы узнаете, как установить... Nginx Правильно и безопасно — надежно и с настройками, готовыми к использованию в производственной среде — на сервере Linux. Как старший технический писатель в... YouStableЯ расскажу вам о командах, специфичных для каждого дистрибутива, настройке серверных блоков, HTTPS с использованием Let's Encrypt, обратном проксировании, оптимизации производительности и устранении неполадок.

Что Nginx и зачем это использовать?

Что Nginx и зачем это использовать?

Nginx является высокопроизводительным веб-сервер Обратный прокси-сервер известен низким потреблением памяти и способностью обрабатывать тысячи одновременных подключений. Он идеально подходит для обслуживания статических файлов, балансировки нагрузки и в качестве... SSL терминатор или проксирование к серверам приложений, таким как Node.js, Python (Gunicorn/Uvicorn), PHP-FPM и Ruby.

Предварительные требования и краткий контрольный список

Перед установкой Nginx В Linux убедитесь, что у вас установлено:

  • Поддерживаемые ОС: Ubuntu 22.04/24.04, Debian 12, RHEL/CentOS/AlmaLinux/Rocky 8/9 или Amazon Linux.
  • Доступ с правами root или sudo к командной оболочке сервера.
  • Брандмауэр предоставляет доступ к открытым портам 80 (HTTP) и 443 (HTTPS).
  • Необязательно: домен, указывающий на публичный IP-адрес вашего сервера. DNS Записи категории A/AAAA.
  • Синхронизация времени (chrony или systemd-timesyncd) для TLS-сертификатов.

Установите Nginx на Ubuntu/Debian

В Ubuntu и Debian для установки используйте pt. Nginx из официальных репозиториев.

Шаг 1. Обновление и установка

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

Шаг 2: Откройте брандмауэр (UFW)

sudo ufw allow 'Nginx Full'
sudo ufw status

Если UFW не включен, вы можете пропустить этот шаг или включить его с осторожностью.

Шаг 3. Проверьте Nginx

systemctl status nginx --no-pager
curl -I http://YOUR_SERVER_IP
# Or visit http://YOUR_SERVER_IP in a browser

Вы должны увидеть код 200 OK и значение по умолчанию. Nginx Приветственная страница.

Установите Nginx на RHEL, CentOS, AlmaLinux, Rocky и Amazon Linux

В системах семейства RHEL для установки используйте dnf (или yum). Nginx.

Шаг 1: Установка и запуск

# RHEL/CentOS/AlmaLinux/Rocky 8/9
sudo dnf install -y nginx
sudo systemctl enable --now nginx

# Amazon Linux 2023
sudo dnf install -y nginx
sudo systemctl enable --now nginx

# Amazon Linux 2 (if needed)
# sudo amazon-linux-extras install nginx1 -y
# sudo systemctl enable --now nginx

Шаг 2: Откройте брандмауэр (firewalld)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Если включен SELinux и вы планируете использовать проксирование для локальных приложений или пользовательские корневые веб-серверы, установите правильные контексты/логические значения:

# Allow Nginx to connect to network services (for reverse proxy)
sudo setsebool -P httpd_can_network_connect 1

# Label a custom web root directory for Nginx
sudo chcon -R -t httpd_sys_content_t /var/www/example.com/html

Создайте серверный блок (виртуальный хост).

Блоки сервера позволяют размещать несколько доменов или приложений. Ниже приведена простая, безопасная для использования в производственной среде конфигурация HTTP, которая обслуживает статический контент для example.com. При необходимости скорректируйте пути и доменные имена.

Шаг 1: Подготовка каталогов и прав доступа.

sudo mkdir -p /var/www/example.com/html
echo "<h1>It works!</h1>" | sudo tee /var/www/example.com/html/index.html

# Give ownership to your user or the web user
sudo chown -R $USER:$USER /var/www/example.com
sudo find /var/www/example.com -type d -exec chmod 755 {} ;

Шаг 2: Добавить Nginx Блок сервера

В Ubuntu/Debian создайте файл в папке sites-available и включите его. В семействах RHEL поместите его в conf.d.

# Ubuntu/Debian
sudo nano /etc/nginx/sites-available/example.com

# RHEL/CentOS/AlmaLinux/Rocky/Amazon Linux
sudo nano /etc/nginx/conf.d/example.com.conf
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log warn;

    location / {
        try_files $uri $uri/ =404;
    }
}

Включите сайт и перезагрузите страницу. Nginx:

# Ubuntu/Debian only
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

# All distros: test and reload
sudo nginx -t
sudo systemctl reload nginx

Включите HTTPS с помощью Let's Encrypt (Certbot)

HTTPS имеет важное значение для безопасности, SEO и доверия к браузерам. Certbot может автоматически запрашивать и устанавливать сертификаты, настраивать TLS и устанавливать условия продления.

Установить Certbot

# Ubuntu/Debian
sudo apt install -y certbot python3-certbot-nginx

# RHEL/CentOS/AlmaLinux/Rocky/Amazon Linux
sudo dnf install -y certbot python3-certbot-nginx

Запросить и установить сертификат

sudo certbot --nginx -d example.com -d www.example.com
# Follow prompts to enable redirect (HTTP to HTTPS)

Certbot настраивает автоматическое продление сертификата с помощью таймера systemd или cron. Проверьте это:

sudo systemctl status certbot.timer
sudo certbot renew --dry-run

Убедитесь, что порт 443 открыт в вашем брандмауэре. DNS Записи A/AAAA указывают на ваш сервер перед запуском Certbot.

Используйте Nginx в качестве обратного прокси (Node.js, Python, PHP-ФПМ)

Nginx Отлично подходит для проксирования трафика на серверы приложений. Ниже представлена ​​базовая конфигурация обратного прокси с поддержкой WebSocket, идеально подходящая для приложений Node.js или Python, работающих на localhost:3000.

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        # Forward client details
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

В системах с поддержкой SELinux разрешите сетевые подключения для веб-сервера при использовании проксирования к приложениям верхнего уровня:

sudo setsebool -P httpd_can_network_connect 1

Оптимизация производительности и повышение уровня безопасности

После установки Nginx В Linux примените эти практические оптимизации для повышения скорости и безопасности.

Gzip и HTTP/2

# /etc/nginx/conf.d/performance.conf (create this file)
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript application/xml text/xml image/svg+xml;
gzip_vary on;

Протокол HTTP/2 автоматически включается на TLS-слушателях (listen 443 ssl http2;). Установщик nginx от Certbot обычно добавляет эту директиву автоматически.

Надежные заголовки TLS и безопасности.

# /etc/nginx/conf.d/security.conf
server_tokens off;                    # Hide Nginx version
client_max_body_size 20m;             # Adjust for your uploads

# Basic security headers (tune CSP to your app)
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'" always;

Ограничение скорости запросов (предотвращение DDoS-атак/атаок методом перебора паролей)

Определите зону разделяемой памяти в контексте HTTP и примените её для каждого местоположения:

# In /etc/nginx/nginx.conf (http block) or /etc/nginx/conf.d/limits.conf
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;

# In a server/location block
location /login {
    limit_req zone=perip burst=20 nodelay;
    proxy_pass http://127.0.0.1:3000;
}

Управление Nginx с использованием Systemd и логов

Используйте эти команды ежедневно для безопасного внесения изменений, перезапуска и отладки.

# Validate syntax before reload
sudo nginx -t

# Reload without dropping connections
sudo systemctl reload nginx

# Start/Stop/Status
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl status nginx

# Recent logs
sudo journalctl -u nginx --since "1 hour ago" --no-pager
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log

Устранение распространенных проблем

  • Порт уже используется: проверьте прослушиватели с помощью команды `sudo ss -tulpn | grep :80 or :443`. Остановите конфликтующие службы (например, Apache) или сменить порты.
  • Ошибка 403 Forbidden: Исправьте права доступа к каталогам и контексты SELinux. Убедитесь, что корневой путь существует и доступен для чтения.
  • 404 Not Found: Проверьте server_name, DNSи try_files в блоке location.
  • Ошибка 502 Bad Gateway: Приложение, предоставляющее исходный код, недоступно или заблокировано SELinux. Запустите приложение, проверьте proxy_pass и включите httpd_can_network_connect.
  • Сбои Certbot: Подтверждение DNS Записи, открытые порты 80/443 и отсутствие принудительной блокировки HTTP-трафика брандмауэрами или CDN во время проверки.

Чистая деинсталляция или переустановка Nginx

В Ubuntu / Debian:

# Remove binaries but keep configs
sudo apt remove nginx nginx-common

# Full purge (removes configs)
sudo apt purge nginx nginx-common
sudo rm -rf /etc/nginx /var/www/example.com

В системах семейства RHEL:

sudo dnf remove nginx
# Optionally remove /etc/nginx and any custom web roots with care

Практические советы, основанные на более чем 15-летнем опыте управления. Nginx

  • Фиксация версий: В производственной среде тестовые обновления следует проводить на тестовой среде. Фиксируйте версии через ваш пакет. manageчтобы избежать неожиданных изменений.
  • Перезагрузка без простоев: всегда запускайте команду sudo nginx -t перед перезагрузкой. Используйте команду reload (а не restart), чтобы поддерживать соединения в активном состоянии.
  • Раздельные конфигурации: для обеспечения чистоты храните конфигурации сайтов в папках sites-available/sites-enabled (в стиле Debian) или в файле conf.d для каждого домена.
  • Ротация логов: Убедитесь, что logrotate настроен для Nginx для предотвращения раздувания диска.
  • Резервное копирование: Отслеживайте изменения с помощью Git и регулярно создавайте резервные копии файлов /etc/nginx и TLS-содержимого (/etc/letsencrypt).

Зачем устанавливать Nginx на YouStable серверу

Если вы предпочитаете обойтись без тяжелой работы, YouStableVPS с поддержкой SSD и облако Серверы поставляются с современной операционной системой Linux, полным доступом root и опционально. managed поддержка. Мы предварительно укрепим ваш стек. конфигурировать Nginx Благодаря HTTPS вы можете оптимизировать систему под свою CMS или приложение и отслеживать время безотказной работы, чтобы сосредоточиться на своем бизнесе, а не на обслуживании серверов.

Часто задаваемые вопросы: Установка Nginx на сервере Linux

Что такое Nginx используется для?

Nginx Это веб-сервер и обратный прокси. Он обслуживает статические веб-сайты и перенаправляет запросы к бэкэнд-приложениям (Node.js, Python, PHP-FPM), завершает TLS, распределяет нагрузку между вышестоящими серверами и выступает в качестве кэширующего слоя для повышения производительности.

Как мне это проверить? Nginx это работает?

Для подтверждения процессов используйте команду systemctl status nginx или ps aux | grep nginx. Вы также можете протестировать локально с помощью curl -I http://127.0.0.1 и проверить логи в /var/log/nginx/.

Nginx vs ApacheЧто мне выбрать?

Nginx Особенно хорошо подходит для сценариев с высокой степенью параллелизма, статическими ресурсами и обратным прокси-сервером. Apache Предлагает глубокую интеграцию с .htaccess и богатый набор модулей. Многие команды размещают Nginx перед Apache или серверы приложений, чтобы получить лучшее из обоих миров.

Где Nginx конфигурационные файлы?

Глобальная конфигурация обычно находится в файле /etc/nginx/nginx.conf. Конфигурации сайтов находятся в файлах /etc/nginx/sites-available и sites-enabled в Ubuntu/Debian или в файле /etc/nginx/conf.d в системах типа RHEL.

Как мне перезагрузить или переустановить систему? Nginx безопасно?

Сначала проверьте правильность установки с помощью команды `sudo nginx -t`, затем перезагрузите систему с помощью команды `sudo systemctl reload nginx`, чтобы применить изменения без разрыва соединений. Используйте команду `restart` только при необходимости.

Как удалить Nginx полностью?

В Ubuntu/Debian выполните команду sudo apt purge nginx nginx-common и удалите файл /etc/nginx. В системах типа RHEL выполните команду sudo dnf remove nginx и очистите файл /etc/nginx и корневые каталоги веб-сервера, если они больше не нужны.

Как включить HTTPS на Nginx?

Установите Certbot и Nginx Затем запустите плагин и выполните команду sudo certbot –nginx -d yourdomain -d www.yourdomain. Certbot получит сертификаты, настроит TLS и установит автоматическое продление.

Заключение

Теперь вы знаете, как установить. Nginx На сервере Linux откройте брандмауэры, настройте блокировку сервера, включите HTTPS, настройте обратный прокси для приложений и усильте безопасность для производственной среды. Следуйте передовым практикам — тестируйте конфигурации, выполняйте корректную перезагрузку и отслеживайте журналы — чтобы поддерживать высокую доступность. Хотите начать быстрее? YouStable обеспечение, защита и оптимизация Nginx для вас.

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *.

Наверх