Гайды

Выделенный сервер: Nginx, PHP-FPM и Node.js

Роли сервисов, systemd, firewall, логи и бэкапы; TLS и мониторинг в связке с курсом.

~10 мин чтения

Выделенный сервер: Nginx, PHP-FPM и Node.js

Классический VPS/LAMP/LEMP стек: Nginx как reverse proxy и раздача статики, PHP-FPM для WordPress/legacy PHP, Node для API или SSR. Безопасность и TLS — SSL/TLS и Let's Encrypt; балансировка — HAProxy vs Nginx.


1. Роли сервисов

  • Nginx — TLS termination, gzip/brotli, location маршрутизация /api → Node, / → PHP или статика.
  • php-fpm — пул воркеров, socket unix или TCP 127.0.0.1:9000.
  • Node (pm2/systemd) — слушает localhost, не торчит в мир напрямую.

2. Пример фрагмента Nginx + PHP

nginx
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

Прокси на Node (API) — отдельный upstream и location, приложение слушает только 127.0.0.1:

nginx
upstream node_api {
    server 127.0.0.1:3000;
    keepalive 32;
}

location /api/ {
    proxy_http_version 1.1;
    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;
    proxy_pass http://node_api/;
}

Заголовки X-Forwarded-* нужны приложению за прокси для корректных URL и rate limit; в Express/FastAPI включайте доверие только к доверенным подсетям Nginx.


3. Systemd

Юниты для php-fpm, nginx, node app с Restart=always, лимиты LimitNOFILE.


4. Обновления и firewall

UFW/iptables: открыть 22 (VPN лучше), 80/443, закрыть остальное. unattended-upgrades для security patches.


5. Логи и бэкап

Ротация logrotate, бэкап БД и /var/www по расписанию — Ansible: автоматизация серверов.


6. Таймауты и лимиты

proxy_read_timeout / send_timeout согласуйте с долгими запросами API, иначе Nginx обрежет ответ раньше приложения. client_max_body_size — для загрузки файлов. Для PHP задайте request_terminate_timeout в пуле FPM под тот же SLA.


7. Чек-лист

  • Отдельный системный пользователь для приложения, не root.
  • AppArmor/SELinux по политике хостинга.
  • Мониторинг диска и RAM (Zabbix и Nagios или Prometheus из курса).
  • proxy_pass на upstream с health (ручной max_fails/fail_timeout или внешний LB).
  • Заголовки безопасности и HSTS — после проверки TLS — SSL/TLS.

Дальше: Деплой FastAPI с Docker и Nginx · HAProxy vs Nginx