Directori d'articles
🚀 Quan una pàgina dinàmica d'un lloc web de sobte té un codi d'estat que no és el 200, com es pot autocurar PHP8.3-FPM en segons?
🔥 Configuració que salva vides de PHP90-FPM que el 8.3% dels operadors desconeixen! Ensenyament pràctic del sistema d'autocorrecció de pàgines dinàmiques Monit.
Creieu que és suficient monitoritzar la supervivència del procés PHP-FPM? Totalment equivocat!
Quan PHP-FPM en un servidor de sobte es torna boig, simplement mirar la supervivència del procés és com utilitzar un termòmetre per mesurar el càncer: no detecta en absolut el problema fatal.
He vist massa gent vigilantphp-fpm.sockEl seguiment va ser complaent i, com a resultat, el lloc web s'ha convertit durant molt de temps en un cementiri 404. Avui vull trencar aquesta il·lusió d'operació i manteniment i mostrar-vos la maleïda veritat: un procés en directe ≠ un servei normal.
🌪️ Escenari destructiu: el socket està connectat, però el lloc web està mort
certComerç electrònicEl seguiment del lloc web va mostrar que el procés PHP-FPM funcionava amb normalitat, però els usuaris es queixaven d'errors de pagament.
Després d'una llarga cerca, vaig trobar que una fuita de memòria en una biblioteca de tercers feia que el procés PHP estigués actiu però no pogués processar sol·licituds.
En aquest moment, confiar únicament en la detecció d'endolls és com comprovar el pols d'un zombi: no es pot trobar el cervell en absolut.mort.
💥 Una solució de monitorització de doble mort que subverteix la cognició
Desfeu-vos d'aquella monitorització unidimensional obsoleta! Els millors experts utilitzen l'estratègia de doble estrangulació de la capa de procés + la capa de negoci.

La configuració següent permetrà que el servidor es recuperi més ràpidament del que el personal d'operació i manteniment es pot aixecar del llit quan es produeixen problemes:
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"
🔍 Detalls fatals amagats als paràmetres
• hostheaderEls paràmetres són talismans que salven vides en escenaris de CDN/balanç de càrrega. Sense ells, és com buscar un caça furtiu amb ulleres de visió nocturna: no pots detectar l'estat suspès causat per la capçalera Host que falta.
• for 3 cyclesAquest disseny de període de memòria intermèdia evita perfectament els falsos positius causats per la fluctuació de la xarxa. És com instal·lar un amortidor al sistema de vigilància per evitar que el tremolor de la mà activi el botó nuclear.
• Últimexec "/usr/bin/systemctl restart hestia"És el moviment assassí definitiu. Quan PHP-FPM no va poder ressuscitar durant 5 vegades seguides, vaig invertir la taula i vaig reiniciar tot el panell d'allotjament. Aquest és un truc que vaig robar del mecanisme de disjuntor del sistema de negociació de Wall Street.
🚨 Lliçons apreses del dolor i el sofriment: 3 trampes que et poden fer fracassar
- Frau de certificat SSL: després d'una actualització,
protocol httpsNo escriure-ho fa que la monitorització sempre ho jutgi erròniament com a normal. Més tard vaig descobrir que la versió antiga de Monit no verificava el certificat per defecte, cosa que em va fer perdre la meva bonificació de final d'any. - Trampa 401 de la pàgina d'inici de sessió: oblida't d'afegir-la quan monitoritzes la pàgina d'inici de sessió
Basic AuthenticationCom a resultat, cada prova desencadena un reinici. És com regar un jardí amb una boca d'incendis: prou potent però totalment equivocada. - Forat negre de registre: Una vegada
/var/log/monit.logQuan la mida es va disparar fins als 50G, vam descobrir que algun idiota havia establert el període de detecció en 1 segon. Recordeu que el registre de monitorització en si és l'objecte que cal monitoritzar!
💡 Passos de verificació i depuració
- Comprovació de la sintaxi de configuració:
monit -t - Configuració de sobrecàrrega:
monit reload
Prova final
- Prova de suïcidi: directa
kill -9Tanqueu el procés PHP-FPM i mireu els registres de resurrecció al registre de monitorització. Se sent com si estigués veient una pel·lícula de zombis! - Injecció de verí: modifiqueu deliberadament la pàgina d'inici de sessió per retornar un codi d'estat 503 i observeu si el sistema de monitorització pot atacar amb precisió. Anomeno aquest mètode "vacuna digital": injecto una petita quantitat de virus al sistema per endavant per forçar la resposta immunitària del sistema de monitorització. Quan les alarmes sonin descontroladament i els serveis es curin, veureu cremar la voluntat més sexy de sobreviure al món del codi!
Bloc d'Hope Chen Weiliang ( https://www.chenweiliang.com/ ) L'article compartit per Monit que monitoritza la pàgina dinàmica del lloc web detecta que el codi d'estat no és 200 i reinicia automàticament php8.3-fpm us pot ser útil.
Benvingut a compartir l'enllaç d'aquest article:https://www.chenweiliang.com/cwl-32764.html
