אותו קובץ PHP יכול להשתמש בפרוקסי בטרמינל ולגשת ישירות כשמגיש אותו PHP-FPM. התחילו בהשוואת התהליכים שמריצים אותו. הטרמינל שלכם מפעיל את PHP עם סביבת ה-shell שלו; שרת האינטרנט שולח בקשה לעובדים ש-FPM כבר יצר.

הסתכלו על סביבת העובד

תצורת ה-pool של FPM מספקת clear_env ורשומות env[NAME] מפורשות. כשניקוי הסביבה מופעל, ייצוא משתנה ב-shell ההתחברות שלכם לא מציב אותו בעובד. רשומות ה-pool יכולות להעביר משתנים נבחרים:

env[http_proxy] = http://203.0.113.10:8080
env[https_proxy] = http://203.0.113.10:8080

החילו שינויי תצורה באמצעות נוהל טעינת ה-FPM הרגיל של הפריסה שלכם. שימו את הערכים ב-pool שבאמת מגיש את האפליקציה. pool אחר, חשבון שירות או מכולה יכולים להסביר מדוע עריכה שנראית נכונה אינה משפיעה.

בעת ניפוי בקשה חיה, בדקו רק אם ההגדרות הצפויות קיימות. עמוד אבחון ציבורי שמדפיס ערכי סביבה מלאים עלול לחשוף אישורי פרוקסי יחד עם סודות לא קשורים.

לאחר מכן בדקו את תעבורת ה-PHP

ל-libcurl יש טיפול מתועד בסביבת פרוקסי; גם למטפל cURL מפורש של PHP יש אפשרויות משלו. לעטיפת זרימת ה-HTTP של PHP יש תצורת הקשר נפרדת. אספקת משתנים לעובד אינה גורמת לכל API רשת של PHP לצרוך אותם.

זה נותן בדיקה שימושית בשני שלבים: אשרו מה העובד קיבל, ואז אשרו כיצד לקוח ה-HTTP הנבחר קורא את הגדרות הפרוקסי. אם CLI ו-FPM מקבלים את אותם ערכים אך עדיין מתנהגים אחרת, השוו לאחר מכן את אפשרויות הלקוח ואת כללי העקיפה. עריכה חוזרת של פרופיל ה-shell לא יכולה לפתור הבדל בתוך לקוח ה-HTTP של העובד.

מאמרים קשורים