Zašto PHP-FPM gubi proxy koji radi u vašem terminalu
Pratite konfiguraciju proxyja u PHP-FPM radnike i razlikujte njihovo okruženje od PHP konteksta tokova.
Ista PHP datoteka može koristiti proxy u terminalu, a pod PHP-FPM-om ići izravno. Počnite usporedbom procesa koji je izvršavaju. Terminal pokreće PHP s okruženjem ljuske; web poslužitelj šalje zahtjev radnicima koje je FPM već stvorio.
Pogledajte okruženje radnika
Konfiguracija FPM poola nudi clear_env i izričite unose env[NAME]. Uz uključeno čišćenje okruženja, izvoz varijable u prijavnoj ljusci ne stavlja je u radnika. Unosi poola mogu prosljeđivati odabrane varijable:
env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080
Primijenite promjene konfiguracije uobičajenim postupkom ponovnog učitavanja FPM-a u vašem uvodu. Stavite vrijednosti u pool koji stvarno poslužuje aplikaciju. Drugi pool, servisni račun ili kontejner mogu objasniti zašto naizgled ispravna izmjena nema učinka.
Kada otklanjate pogreške na aktivnom zahtjevu, provjerite samo postoje li očekivane postavke. Javna dijagnostička stranica koja ispisuje potpune vrijednosti okruženja može otkriti vjerodajnice proxyja zajedno s nepovezanim tajnama.
Zatim provjerite PHP transport
libcurl ima dokumentirano rukovanje proxy okruženjem; izričita PHP cURL ručka također ima vlastite opcije. PHP-ov omotač HTTP toka ima zasebnu konfiguraciju konteksta. Davanje varijabli radniku ne čini da ih svaki PHP mrežni API koristi.
To daje korisnu dvodijelnu provjeru: potvrdite što je radnik primio, zatim potvrdite kako odabrani HTTP klijent čita postavke proxyja. Ako CLI i FPM primaju iste vrijednosti ali se i dalje ponašaju različito, zatim usporedite opcije klijenta i pravila zaobilaženja. Ponovno uređivanje profila ljuske ne može riješiti razliku unutar radnikovog HTTP klijenta.