Гайды
Выделенный сервер: 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
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
Прокси на Node (API) — отдельный upstream и location, приложение слушает только 127.0.0.1:
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.