המסמך הזה מיועד למפתחים שרוצים לנתב את כל תעבורת התגים בצד השרת דרך שרת proxy.
לפני שמתחילים
כדי להגדיר ניתוב שרת proxy, צריך לוודא שיש לכם:
קונטיינר של שרת שנפרס ב-Cloud Run או באמצעות הגדרה ידנית.
שרת proxy שנפרס ותומך בבקשות של
HTTP CONNECT
.היכולת להוסיף לרשימת ההיתרים תעבורת נתונים יוצאת מהשרת שרת ה-proxy, למשל באמצעות VPC, Firewall או רשימות של בקרת גישה לשרת proxy (רשימות ACL).
הגדרת ניתוב של שרת proxy
Cloud Run
כדי להעביר את התעבורה לשרת proxy עבור פריסות של Cloud Run:
- פתיחת Cloud Run
- בוחרים את המכונה של Cloud Run לתיוג בצד השרת.
- לוחצים על EDIT & DEPLOY NEW REVISION. המסך של פריסת הגרסה הקודמת נפתח.
- בקטע מאגרים, בוחרים את מאגר התגים של השרת. מסך חדש עם ההגדרה של מאגר התגים ייפתח.
כדי להרחיב את הגדרת השירות, בוחרים בכרטיסייה Variables & Secrets. לוחצים על הלחצן Add Variable (הוספת משתנה) ומוסיפים את משתנה הסביבה הבא:
- שם:
HTTP_PROXY
- ערך: URI של שרת ה-proxy (למשל,
https://proxy.example.com:3333
אוhttp://32.12.83.10
)
- שם:
לוחצים על סיום.
מאשרים את הגרסאות הקודמות ולוחצים על פריסה.
פריסה ידנית
כדי להעביר תעבורת נתונים לשרת proxy לצורך פריסות ידניות:
מגדירים משתנה סביבה שאפשר לגשת אליו לתמונת Docker:
- שם:
HTTP_PROXY
- ערך: URI של שרת ה-proxy (למשל,
https://proxy.example.com
אוhttp://32.12.83.10:1234
)
- שם:
מריצים את קובץ האימג' של Docker באמצעות משתנה הסביבה החדש.
docker run -p 8080:8080 \ -e CONTAINER_CONFIG=CONTAINER_CONFIG \ -e HTTP_PROXY=PROXY_URL \ gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
התוצאה: פריסת התיוג בצד השרת שולחת את כל התעבורה היוצאת לנקודת הקצה של שרת ה-proxy שציינתם במשתנה הסביבה.
בדיקת ההגדרה של שרת ה-proxy
כדי לאמת את ההגדרה של בקשות שרת ה-proxy, צריך לבדוק גם את Google Tag Manager וגם את ההגדרה של שרת ה-proxy.
כדי לאמת את הבקשות לשרתי proxy של קונטיינרים של השרת:
פותחים את מאגר התגים של השרת.
פותחים את מצב תצוגה מקדימה. בכרטיסייה בקשות:
- מוודאים שהלקוח תובע בעלות על הבקשה הנכנסת.
- ודאו שהתגים והמשתנים שלכם שולחים בקשות HTTP יוצאות.
- כדי לבדוק אם הבקשה נשלחה דרך שרת proxy, לוחצים על בקשת HTTP כדי להציג את HTTP Request Details.
כדי לוודא ששרת ה-proxy מוגדר:
- צריך לבדוק את יומני הרשת ושרת ה-proxy. לכל הפחות יש לראות בקשות מוצלחות לנקודות הקצה הבאות:
- בודקים אם יש בקשות לנקודות קצה אחרות.
- בהתאם לתכונות התיוג בצד השרת שבהן אתם משתמשים, ייתכן שתראו גם בקשות שנשלחו לנקודות קצה אחרות, כמו www.google-analytics.com, bigquery.googleapis.com או נקודות קצה של צד שלישי. מוסיפים לרשימת ההיתרים כל נקודת קצה (endpoint) אחרת שנדרשת להגדרת התיוג.
אופציונלי: תנועה יוצאת משרת ה-proxy ברשימת ההיתרים
אם חוסמים תנועה יוצאת מהרשת או משרת ה-proxy, צריך להוסיף את הדומיינים של Google Tag Manager לרשימת ההיתרים כדי שהמופע של שרת התיוג יפעל. הדרך שבה מוסיפים את תעבורת הנתונים היוצאת לרשימת ההיתרים תלויה בסביבת הרשת ובתוכנת ה-proxy. לפני שמתחילים ברשימת ההיתרים של נקודות הקצה, חשוב להבין את הטופולוגיה של הרשת.
הדומיינים הבאים משמשים לאחזור, לתצוגה מקדימה ולניפוי באגים במאגר התגים ב-Google Tag Manager:
https://www.googletagmanager.com
https://tagmanager.google.com
${Preview server URL}
אם אתם מארחים את שרת התצוגה המקדימה ברשת שונה מזו של שרת ה-proxy, או אם הגדרתם כללי רשת מגבילים, תוכלו להוסיף לרשימת ההיתרים תנועה יוצאת משרת ה-proxy לשרת התצוגה המקדימה. כתובת ה-URL של שרת התצוגה המקדימה מוגדרת כשפורסים את מאגר התגים של השרת.
אופציונלי: שימוש באימות בסיסי עם שרת ה-proxy
אם הארגון שלכם דורש אימות, תוכלו להשתמש באימות בסיסי בכל סוגי השרתים.
כדי להשתמש באימות בסיסי, צריך לכלול את פרטי הכניסה (שם משתמש/סיסמה) כחלק מכתובת ה-URL של שרת ה-proxy בפורמט הבא:
HTTP_PROXY=http(s)://USER_NAME:PASSWORD@PROXY_URL
כל בקשה לשרת proxy מגדירה את שם המשתמש והסיסמה בכותרת Proxy-Authorization כערכי Base64.
אם אתם משתמשים ב-Cloud Run, כדאי לאחסן ב-Secret Manager את פרטי הכניסה של נקודת הקצה של שרת ה-proxy. כשמשתמשים ב-Secret Manager, ל-Cloud Run יש גישה לסוד בזמן ההפעלה ולפענח את הערך. איך מגדירים סודות ב-Cloud Run
אופציונלי: השבתת שרת ה-proxy למארחים ספציפיים
משתנה הסביבה NO_PROXY
מאפשר להגדיר רשימה של שמות מארחים מופרדים בפסיקים, שאי אפשר לשלוח דרך שרת ה-proxy.
לדוגמה, בהינתן:
NO_PROXY=example.com,169.254.169.254,diagnostics.example2.com:3131
מאגר התגים של sGTM לא שולח proxy לאף אחת מהבקשות הבאות:
http://example.com
,https://sub.example.com
,https://other.example.com:123
http://169.254.169.254
,https://169.254.169.254
,http://169.254.169.254:123
http://diagonstics.example2.com:3131
,https://diagonstics.example2.com:3131