До основного вмісту
🔀

Nginx

16 статей у розділі

Nginx — веб-сервер, на якому у ZevsHost побудована більшість інструкцій для сайтів, і розділ пояснює його від архітектури до тонкого налаштування. Початок — встановлення на Ubuntu та Debian, server block для кількох сайтів на одній IP-адресі й директива location з її порядком пріоритету, через який найчастіше ламаються правила.

Далі — робочі задачі: rewrite і return для редиректів без циклів, reverse proxy через proxy_pass із правильними заголовками бекенда, зв'язка з PHP-FPM через сокети й fastcgi_params, налаштування SSL/TLS і перехід на HTTP/2 та HTTP/3. Окремо розібрані proxy_cache і fastcgi_cache, стиснення gzip та Brotli, а також limit_req і limit_conn для захисту від напливу запитів.

Є й діагностика: як читати access_log та розбирати помилки, що означають коди 502 і 504 і з чого починати пошук причини, як віддавати статику через try_files, expires і sendfile без зайвого навантаження на застосунок.

  • Віртуальні хости і пріоритет location
  • Reverse proxy, PHP-FPM і SSL/TLS
  • Кеш, стиснення і захист від перевантаження
Що таке Nginx: архітектура і відмінність від Apache Розбираємо, що таке Nginx: master і worker процеси, event-driven модель та головні відмінності від Apache на практиці. Встановлення Nginx на Ubuntu і Debian: два способи і версії Покроково встановлюємо Nginx на Ubuntu і Debian: пакет з репозиторію дистрибутива або офіційний репозиторій nginx.org. Server block у Nginx: віртуальні хости для декількох сайтів Як налаштувати server block у Nginx: структура sites-available, sites-enabled, listen, server_name і декілька сайтів на одній IP. Директива location у Nginx: порядок і пріоритет правил Як Nginx обирає потрібний location: модифікатори =, ~, ~*, ^~, порядок перевірки правил і часті помилки конфігурації. rewrite і return у Nginx: редиректи без помилок Різниця між rewrite і return у Nginx, прапорці last і break, коди 301 і 302, приклади редиректів www, https і старих URL. Reverse proxy у Nginx: proxy_pass і заголовки бекенду Reverse proxy в Nginx: як налаштувати proxy_pass, передати заголовки клієнта бекенду і не втратити IP відвідувача. Оптимізація Nginx на VPS: продуктивність і кеш Як оптимізувати Nginx на VPS: worker_processes, gzip-стиснення, FastCGI кеш, browser caching, rate limiting, HTTP/2 та буфери для високого навантаження. Зв'язка Nginx і PHP-FPM: сокети, пули і fastcgi_params Як з'єднати Nginx із PHP-FPM через сокет або TCP, налаштувати пул і fastcgi_params, щоб сайт на PHP не падав під навантаженням. SSL/TLS у Nginx: сертифікати, протоколи і шифри Налаштування SSL/TLS у Nginx: шлях до сертифіката, вибір протоколів і наборів шифрів, редирект на HTTPS і перевірка результату. HTTP/2 і HTTP/3 (QUIC) у Nginx: як увімкнути і перевірити Як увімкнути HTTP/2 і HTTP/3 через QUIC у Nginx, яка версія потрібна і як перевірити, що браузер справді використовує новий протокол. Кешування в Nginx: proxy_cache і fastcgi_cache на практиці Як налаштувати кешування в Nginx через proxy_cache і fastcgi_cache: зона кешу, ключ, час життя і скидання кешу для окремих сторінок. Gzip і Brotli в Nginx: як налаштувати стиснення відповідей Як увімкнути gzip і Brotli в Nginx: параметри gzip_comp_level, встановлення модуля Brotli і перевірка стиснення через curl. limit_req і limit_conn у Nginx: захист від напливу запитів Як налаштувати limit_req і limit_conn у Nginx: зони пам'яті, burst, nodelay і коди відповіді 429 та 503 при перевищенні лімітів. Логи Nginx: формат access_log, ротація і розбір помилок Як налаштувати формат логів Nginx, увімкнути ротацію через logrotate і розібрати access.log та error.log командами grep і awk. 502 і 504 у Nginx: як знайти причину і полагодити сайт Чому Nginx повертає 502 Bad Gateway і 504 Gateway Timeout: розбір error.log, перевірка PHP-FPM і налаштування таймаутів proxy_pass. Віддача статики в Nginx: try_files, expires і sendfile Як налаштувати швидку віддачу статики в Nginx: директиви try_files, expires, sendfile, tcp_nopush і кешування в браузері.