Zašto PHP-FPM gubi proxy koji radi u vašem terminalu
Pratite konfiguraciju proxyja do PHP-FPM radnika i razlikujte njihovo okruženje od PHP stream konteksta.
Ista PHP datoteka može koristiti proxy u terminalu i ići direktno kada je poslužuje PHP-FPM. Počnite upoređivanjem procesa koji je pokreću. Vaš terminal pokreće PHP sa okruženjem svoje ljuske; web server šalje zahtjev radnicima koje je FPM već stvorio.
Pogledajte okruženje radnika
Konfiguracija FPM pula pruža clear_env i eksplicitne env[NAME] unose. Kada je čišćenje okruženja omogućeno, izvoz varijable u vašoj prijavnoj ljusci ne stavlja je u radnika. Unosi pula mogu prenijeti odabrane varijable:
env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080
Primijenite promjene konfiguracije kroz uobičajenu proceduru ponovnog učitavanja FPM-a u vašem raspoređivanju. Stavite vrijednosti u pul koji stvarno poslužuje aplikaciju. Drugi pul, servisni račun ili kontejner mogu objasniti zašto naizgled ispravna izmjena nema efekta.
Kada ispravljate greške na živom zahtjevu, provjerite samo postoje li očekivane postavke. Javna dijagnostička stranica koja ispisuje potpune vrijednosti okruženja može otkriti proxy akreditive zajedno s nepovezanim tajnama.
Zatim provjerite PHP transport
libcurl ima dokumentirano rukovanje proxy okruženjem; eksplicitni PHP cURL handle također ima svoje opcije. PHP-ov HTTP stream wrapper ima odvojenu konfiguraciju konteksta. Davanje varijabli radniku ne čini da ih svaki PHP mrežni API koristi.
To daje korisnu provjeru u dva dijela: potvrdite šta je radnik primio, zatim potvrdite kako odabrani HTTP klijent čita proxy postavke. Ako CLI i FPM primaju iste vrijednosti ali se i dalje ponašaju različito, zatim uporedite opcije klijenta i pravila zaobilaženja. Ponovljeno uređivanje profila ljuske ne može riješiti razliku unutar HTTP klijenta radnika.