המסמך הזה מיועד למפתחים שרוצים לנתב את כל התנועה של תיוג בצד השרת דרך שרת proxy.
לפני שמתחילים
לפני שמגדירים ניתוב של שרת proxy, צריך לוודא שיש:
מאגר תגים בצד השרת שנפרס ב-Cloud Run או באמצעות הגדרה ידנית.
שרת proxy שפרוס ותומך בבקשות
HTTP CONNECT.אפשר להוסיף לרשימת ההיתרים תנועה יוצאת ספציפית משרת ה-proxy, למשל באמצעות VPC, Firewall או רשימות של בקרת גישה (ACL) ל-proxy.
הגדרה של ניתוב שרת proxy
Cloud Run
כדי להעביר תעבורה לשרת proxy לפריסות של Cloud Run:
- פתיחת Cloud Run
- בוחרים את מופע Cloud Run של תיוג בצד השרת.
- לוחצים על
עריכה ופריסה של גרסה חדשה. מסך הפריסה של הגרסה ייפתח.
- בקטע Container(s) (מאגרי תגים), בוחרים את מאגר התגים בצד השרת. ייפתח מסך חדש עם הגדרות מאגר התגים.
כדי להרחיב את הגדרת השירות, בוחרים בכרטיסייה Variables & Secrets (משתנים וסודות). לוחצים על הלחצן Add Variable (הוספת משתנה) ומוסיפים את משתנה הסביבה הבא:
- Name (שם):
HTTP_PROXY - ערך: ה-URI של שרת ה-proxy (לדוגמה,
https://proxy.example.com:3333אוhttp://32.12.83.10)
- Name (שם):
לוחצים על סיום.
מאשרים את השינויים ולוחצים על פריסה.
פריסה ידנית
כדי להעביר תנועה לשרת proxy עבור פריסות ידניות:
מגדירים משתנה סביבה שנגיש לקובץ אימג' של Docker:
- Name (שם):
HTTP_PROXY - ערך: ה-URI של שרת ה-proxy (לדוגמה,
https://proxy.example.comאוhttp://32.12.83.10:1234)
- Name (שם):
מריצים את קובץ האימג' של 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.
כדי לוודא שהגדרת השרת הפרוקסי תקינה:
- בודקים את היומנים של הרשת ושל שרת ה-proxy. לפחות הבקשות הבאות צריכות להופיע כבקשות מוצלחות לנקודות הקצה הבאות:
- בודקים אם יש בקשות לנקודות קצה אחרות.
- בהתאם לתכונות התיוג בצד השרת שבהן אתם משתמשים, יכול להיות שיוצגו גם בקשות שמופנות לנקודות קצה אחרות, כמו www.google-analytics.com, bigquery.googleapis.com או נקודות קצה של צד שלישי. מוסיפים לרשימת ההיתרים את כל נקודות הקצה האחרות שנדרשות להגדרת התיוג.
אופציונלי: הוספת תעבורה יוצאת משרת ה-proxy לרשימת ההיתרים
אם חוסמים תנועה יוצאת מהרשת או משרת ה-proxy, צריך להוסיף את הדומיינים של Google Tag Manager לרשימת ההיתרים כדי שמופע שרת התיוג יפעל. האופן שבו מוסיפים לרשימת ההיתרים תנועה יוצאת תלוי בסביבת הרשת ובתוכנת ה-proxy. לפני שמתחילים להוסיף נקודות קצה לרשימת ההיתרים, חשוב להבין את טופולוגיית הרשת.
הדומיינים הבאים משמשים לאחזור, לתצוגה מקדימה ולניפוי באגים במאגר התגים שלכם ב-Google Tag Manager:
https://www.googletagmanager.comhttps://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:123http://169.254.169.254,https://169.254.169.254,http://169.254.169.254:123http://diagonstics.example2.com:3131,https://diagonstics.example2.com:3131