Artikelkatalog
🚀 När en dynamisk sida på en webbplats plötsligt har en statuskod som inte är 200, hur kan PHP8.3-FPM självläka på några sekunder?
🔥 PHP90-FPM livräddande konfiguration som 8.3 % av operatörerna inte känner till! Praktisk undervisning i Monits dynamiska sidbaserade självläkningssystem.
Tycker du att det är tillräckligt att övervaka PHP-FPM-processens överlevnad? Helt fel!
När PHP-FPM på en server plötsligt går i kras, är det som att använda en termometer för att mäta cancer, att bara titta på processöverlevnad – den upptäcker inte alls det fatala problemet.
Jag har sett för många människor vaktaphp-fpm.sockÖvervakningen var självbelåten, och som ett resultat har webbplatsen länge blivit en 404-kyrkogård. Idag vill jag riva sönder denna drift- och underhållsillusion och visa er den förbannade sanningen: en levande process ≠ en normal service.
🌪️ Destruktivt scenario: Socket är anslutet, men webbplatsen är död
vissaelleverantörWebbplatsens övervakning visade att PHP-FPM-processen fungerade normalt, men användarna klagade på betalningsfel.
Efter en lång sökning upptäckte jag att en minnesläcka i ett tredjepartsbibliotek orsakade att PHP-processen var aktiv men helt oförmögen att bearbeta förfrågningar.
För närvarande är det som att kontrollera en zombies puls att enbart förlita sig på håldetektering – man kan inte hitta hjärnan alls.döden.
💥 En dubbeldödande övervakningslösning som undergräver kognition
Släng den där föråldrade endimensionella övervakningen! De bästa experterna använder alla den dubbla strypningsstrategin med processlager + affärslager.

Följande konfiguration gör att din server kan återställa sig själv snabbare än drift- och underhållspersonalen kan resa sig ur sängen när problem uppstår:
check process php8.3-fpm with pidfile /run/php/php8.3-fpm.pid
start program = "/usr/sbin/service php8.3-fpm start"
stop program = "/usr/sbin/service php8.3-fpm stop"
if failed unixsocket /run/php/php8.3-fpm.sock then restart
if failed
host www.chenweiliang.com
port 443
protocol https
request "/wp-login.php"
status = 200
hostheader www.chenweiliang.com
for 3 cycles
then restart
if 5 restarts within 5 cycles then exec "/usr/bin/systemctl restart hestia"
🔍 Fatala detaljer gömda i parametrarna
• hostheaderParametrar är livräddande talismaner i CDN/lastbalanseringsscenarier. Utan dem är det som att leta efter en smygjaktplan med mörkerseendeglasögon – du kan inte upptäcka det viloläge som orsakas av den saknade Host-huvudet.
• for 3 cyclesDenna buffertperiodsdesign undviker perfekt falska positiva resultat orsakade av nätverksjitter. Det är som att installera en stötdämpare på övervakningssystemet för att förhindra att handskakningar utlöser kärnkraftsknappen.
• Sistaexec "/usr/bin/systemctl restart hestia"Det är det ultimata mördardraget. När PHP-FPM misslyckades med att återupplivas fem gånger i rad, vände jag på tabellen och startade om hela webbhotellspanelen. Det här är ett trick jag stal från brytarmekanismen i Wall Streets handelssystem.
🚨 Lärdomar från smärta och lidande: 3 fällor som kan förstöra din framgång
- SSL-certifikatbedrägeri: Efter en uppgradering,
protocol httpsAtt inte skriva det gör att övervakningen alltid felbedömer det som normalt. Senare upptäckte jag att den gamla versionen av Monit inte verifierade certifikatet som standard, vilket gjorde att jag förlorade min årsslutsbonus. - Inloggningssida 401-fälla: glöm att lägga till när du övervakar inloggningssidan
Basic AuthenticationSom ett resultat utlöser varje test en omstart. Det är som att vattna en trädgård med en brandpost – tillräckligt stark men helt fel. - Logga svart hål: En gång
/var/log/monit.logNär storleken skjutit i höjden till 50G upptäckte vi att någon idiot hade ställt in detekteringsperioden till 1 sekund. Kom ihåg att det är själva övervakningsloggen som behöver övervakas!
💡 Verifierings- och felsökningssteg
- Kontroll av konfigurationssyntax:
monit -t - Överbelastningskonfiguration:
monit reload
Slutprov
- Självmordstest: Direkt
kill -9Avsluta PHP-FPM-processen och titta på återställningsposterna i övervakningsloggen. Det känns som att titta på en zombiefilm! - Giftinjektion: Ändra medvetet inloggningssidan för att returnera en 503-statuskod och observera om övervakningssystemet kan attackera korrekt. Jag kallar den här metoden för "digitalt vaccin" – att injicera en liten mängd virus i systemet i förväg för att tvinga fram övervakningssystemets immunsvar. När larmen blinkar vilt och tjänsterna läker sig själva, kommer du att se den sexigaste överlevnadsviljan i kodvärlden brinna!
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ Artikeln som delas av Monit, som övervakar webbplatsens dynamiska sida och upptäcker att statuskoden inte är 200 och automatiskt startar om php8.3-fpm, kan vara till hjälp för dig.
Välkommen att dela länken till denna artikel:https://www.chenweiliang.com/cwl-32764.html
