Per què PHP-FPM perd el proxy que funciona al vostre terminal
Seguiu la configuració del proxy fins als treballadors de PHP-FPM i distingiu el seu entorn dels contextos de flux de PHP.
El mateix fitxer PHP pot utilitzar un proxy en un terminal i anar directe quan el serveix PHP-FPM. Comenceu comparant els processos que l'executen. El vostre terminal inicia PHP amb l'entorn de la seva shell; el servidor web envia una sol·licitud als treballadors que FPM ja ha creat.
Mireu l'entorn del treballador
La configuració del pool de FPM proporciona clear_env i entrades explícites env[NAME]. Amb la neteja d'entorn activada, exportar una variable a la vostra shell d'inici de sessió no la col·loca en un treballador. Les entrades del pool poden passar variables seleccionades:
env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080
Apliqueu els canvis de configuració mitjançant el procediment normal de recàrrega de FPM del vostre desplegament. Poseu els valors al pool que realment serveix l'aplicació. Un pool, compte de servei o contenidor diferent pot explicar per què una edició aparentment correcta no té efecte.
En depurar una sol·licitud en directe, comproveu només si existeixen els paràmetres esperats. Una pàgina de diagnòstic pública que imprimeixi valors complets d'entorn pot exposar credencials de proxy juntament amb secrets no relacionats.
Després comproveu el transport de PHP
libcurl té un tractament documentat de l'entorn de proxy; un identificador PHP cURL explícit també té les seves pròpies opcions. L'embolcall de flux HTTP de PHP té una configuració de context separada. Subministrar variables a un treballador no fa que totes les API de xarxa de PHP les consumeixin.
Això ofereix una comprovació útil en dues parts: confirmeu què ha rebut el treballador, després confirmeu com el client HTTP triat llegeix la configuració del proxy. Si CLI i FPM reben els mateixos valors però encara es comporten de manera diferent, compareu a continuació les opcions del client i les regles d'omissió. Editar repetidament el perfil de la shell no pot resoldre una diferència dins del client HTTP del treballador.