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

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

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

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

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

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

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

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

Cloud Run

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

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

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

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

פריסה ידנית

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

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

    1. Name (שם): 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.

כדי לוודא שהגדרת השרת הפרוקסי תקינה:

  1. בודקים את היומנים של הרשת ושל שרת ה-proxy. לפחות הבקשות הבאות צריכות להופיע כבקשות מוצלחות לנקודות הקצה הבאות:
  2. בודקים אם יש בקשות לנקודות קצה אחרות.
  3. בהתאם לתכונות התיוג בצד השרת שבהן אתם משתמשים, יכול להיות שיוצגו גם בקשות שמופנות לנקודות קצה אחרות, כמו www.google-analytics.com,‏ bigquery.googleapis.com או נקודות קצה של צד שלישי. מוסיפים לרשימת ההיתרים את כל נקודות הקצה האחרות שנדרשות להגדרת התיוג.

אופציונלי: הוספת תעבורה יוצאת משרת ה-proxy לרשימת ההיתרים

אם חוסמים תנועה יוצאת מהרשת או משרת ה-proxy, צריך להוסיף את הדומיינים של Google Tag Manager לרשימת ההיתרים כדי שמופע שרת התיוג יפעל. האופן שבו מוסיפים לרשימת ההיתרים תנועה יוצאת תלוי בסביבת הרשת ובתוכנת ה-proxy. לפני שמתחילים להוסיף נקודות קצה לרשימת ההיתרים, חשוב להבין את טופולוגיית הרשת.

הדומיינים הבאים משמשים לאחזור, לתצוגה מקדימה ולניפוי באגים במאגר התגים שלכם ב-Google Tag Manager:

  • https://www.googletagmanager.com
  • https://tagmanager.google.com
  • ${Preview server URL}

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

אופציונלי: שימוש באימות בסיסי עם שרת ה-Proxy

אם הארגון שלכם דורש אימות, אתם יכולים להשתמש באימות BASIC עם כל סוגי השרתים.

כדי להשתמש באימות BASIC, צריך לכלול את פרטי הכניסה (שם משתמש/סיסמה) כחלק מכתובת ה-URL של שרת ה-proxy בפורמט הבא:

HTTP_PROXY=http(s)://USER_NAME:PASSWORD@PROXY_URL

בכל בקשה לשרת ה-Proxy מוגדרים שם המשתמש והסיסמה בכותרת Proxy-Authorization כערכי Base64.

אם אתם משתמשים ב-Cloud Run, אחסנו את פרטי הכניסה של נקודת הקצה של ה-proxy ב-Secret Manager. ‫Secret Manager מעניק ל-Cloud Run גישה לסוד בזמן האתחול ומחלץ את הערך. איך מגדירים סודות ב-Cloud Run

אופציונלי: השבתת ה-proxy למארחים ספציפיים

משתנה הסביבה NO_PROXY מאפשר להגדיר רשימה מופרדת בפסיקים של שמות מארחים שלא ניתן לשלוח דרך שרת ה-proxy.

לדוגמה, אם נתון: NO_PROXY=example.com,169.254.169.254,diagnostics.example2.com:3131

מאגר התגים של sGTM לא מעביר אף אחת מהבקשות הבאות:

  • 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