הגדרת ניתוב שרת proxy

המסמך הזה מיועד למפתחים שרוצים לנתב את כל תעבורת התגים בצד השרת דרך שרת proxy.

לפני שמתחילים

כדי להגדיר ניתוב שרת proxy, צריך לוודא שיש לכם:

  • קונטיינר של שרת שנפרס ב-Cloud Run או באמצעות הגדרה ידנית.

  • שרת proxy שנפרס ותומך בבקשות של HTTP CONNECT.

  • היכולת להוסיף לרשימת ההיתרים תעבורת נתונים יוצאת מהשרת שרת ה-proxy, למשל באמצעות VPC, Firewall או רשימות של בקרת גישה לשרת proxy (רשימות ACL).

הגדרת ניתוב של שרת proxy

Cloud Run

כדי להעביר את התעבורה לשרת proxy עבור פריסות של Cloud Run:

  1. פתיחת Cloud Run
  2. בוחרים את המכונה של Cloud Run לתיוג בצד השרת.
  3. לוחצים על EDIT & DEPLOY NEW REVISION. המסך של פריסת הגרסה הקודמת נפתח.
  4. בקטע מאגרים, בוחרים את מאגר התגים של השרת. מסך חדש עם ההגדרה של מאגר התגים ייפתח.
  5. כדי להרחיב את הגדרת השירות, בוחרים בכרטיסייה Variables & Secrets. לוחצים על הלחצן Add Variable (הוספת משתנה) ומוסיפים את משתנה הסביבה הבא:

    1. שם: HTTP_PROXY
    2. ערך: URI של שרת ה-proxy (למשל, https://proxy.example.com:3333 או http://32.12.83.10)
  6. לוחצים על סיום.

  7. מאשרים את הגרסאות הקודמות ולוחצים על פריסה.

פריסה ידנית

כדי להעביר תעבורת נתונים לשרת proxy לצורך פריסות ידניות:

  1. מגדירים משתנה סביבה שאפשר לגשת אליו לתמונת Docker:

    1. שם: HTTP_PROXY
    2. ערך: URI של שרת ה-proxy (למשל, https://proxy.example.com או http://32.12.83.10:1234)
  2. מריצים את קובץ האימג' של 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 של קונטיינרים של השרת:

  1. פותחים את Google Tag Manager

  2. פותחים את מאגר התגים של השרת.

  3. פותחים את מצב תצוגה מקדימה. בכרטיסייה בקשות:

    1. מוודאים שהלקוח תובע בעלות על הבקשה הנכנסת.
    2. ודאו שהתגים והמשתנים שלכם שולחים בקשות HTTP יוצאות.
    3. כדי לבדוק אם הבקשה נשלחה דרך שרת proxy, לוחצים על בקשת HTTP כדי להציג את HTTP Request Details.

כדי לוודא ששרת ה-proxy מוגדר:

  1. צריך לבדוק את יומני הרשת ושרת ה-proxy. לכל הפחות יש לראות בקשות מוצלחות לנקודות הקצה הבאות:
  2. בודקים אם יש בקשות לנקודות קצה אחרות.
  3. בהתאם לתכונות התיוג בצד השרת שבהן אתם משתמשים, ייתכן שתראו גם בקשות שנשלחו לנקודות קצה אחרות, כמו 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