|
Останні кілька днів виникло багато проблем з Nginx 502 в інтернеті, і я спочатку думав, що це проблема Nginx, як і багато інших.
Веб використовує архітектуру nginx+php, а сайт давно не був онлайн, тож оптимізація — це по суті початкова конфігурація.
Перевірка php-fpm.log знайшла попередження, які фактично співпали з часом блокування сайту. Почну тут.
Спочатку я також шукав документацію, але наступного дня проблема все одно залишилася. Пізніше я перевірив конфігураційний файл і переклав його (Baidu), і англійська основа була поганою. Модуль PM схожий на модуль Apache, який є статичним і динамічним.
Багато з наведених в Інтернеті коригувань здебільшого базуються на динаміці, але не вказано, як визначити цей модуль. Тож усім варто уважніше звернути увагу на конфігураційний файл при використанні динамічних і статичних pm = статичний шум
; Кількість дочірніх процесів, які потрібно створити, коли pm встановлено на «статичний» та
; Максимальна кількість дочірніх процесів, коли PM встановлений як «Динамічний» або «За запитом».
; Це значення встановлює межу кількості одночасних запитів, які будуть
; подано. Еквівалентно директиві ApacheMaxClients з mpm_prefork.
; Еквівалентно змінній PHP_FCGI_CHILDREN середовища в оригінальному PHP
; CGI. Наведені нижче стандартні налаштування базуються на сервері без значних ресурсів. Не
; Забудьте налаштувати PM.* під свої потреби.
; Примітка: Використовується, коли pm встановлений на 'статичний', 'динамічний' або 'ondemand'
; Примітка: Це значення є обов'язковим.
pm.max_діти = 300
; Кількість дочірніх процесів, створених при запуску.
; Примітка: Використовується лише тоді, коли pm встановлений на «динамічний»
; Значення за замовчуванням: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Бажана мінімальна кількість процесів у режимі простою.
; Примітка: Використовується лише тоді, коли pm встановлений на «динамічний»
; Примітка: Обов'язково, коли PM встановлений на 'динамічний'
;p m.min_spare_servers = 20
; Бажана максимальна кількість процесів у режимі простою.
; Примітка: Використовується лише тоді, коли pm встановлений на «динамічний»
; Примітка: Обов'язково, коли PM встановлений на 'динамічний'
;pm.max_spare_servers = 500
; Кількість секунд, після яких процес простою буде зупинено.
; Примітка: Використовується лише коли PM встановлений на 'ondemand'
; Значення за замовчуванням: 10s
pm.process_idle_timeout = 10s;
; Кількість запитів, які кожен дочірній процес має виконати перед відновленням.
; Це корисно для обходу витоків пам'яті в сторонніх бібліотеках. Для
; Нескінченна обробка запитів вказує '0'. Еквівалентно PHP_FCGI_MAX_REQUESTS.
; Значення за замовчуванням: 0
pm.max_запити = 10240
Червоне поле — це спосіб визначити його, а потім встановити параметри відповідно до ситуації на сервері
Якщо використовувати статичний параметр pm.max_дітей, це працюватиме, решта — ні. Динаміка протилежна.
2G пам'ять pm.max_children увімкнена приблизно на 50, що необхідно для налаштування відповідно до реальної ситуації.
Якщо є якісь недоліки, я хотів би, щоб ви поділилися своїми думками, 502 рішення.
|