מדריך קלאודפלייר בעברית

תיעוד 30

כותרות HTTP של קלאודפלייר

#כותרות בקשה

קלאודפלייר מעבירה את כל כותרות בקשת ה-HTTP לשרת המקור שלכם ומוסיפה כותרות נוספות כמפורט להלן.

הערה

קלאודפלייר עשויה להסיר כותרות בקשת HTTP ששמותיהן נחשבים לא תקינים לפי NGINX, למשל שמות כותרות שמכילים תו . (נקודה).

#Accept-Encoding

בבקשות נכנסות, הערך של כותרת זו תמיד יוגדר ל-accept-encoding: br, gzip. אם הלקוח הגדיר ערך אחר, כגון accept-encoding: deflate, הערך יוחלף והערך המקורי יהיה זמין ב-request.cf.clientAcceptEncoding.

#CF-Connecting-IP

CF-Connecting-IP מספקת לשרת המקור את כתובת ה-IP של הלקוח שמתחבר לקלאודפלייר. כותרת זו תישלח רק בתעבורה מקצה הרשת של קלאודפלייר אל שרת המקור.

להנחיות על תיעוד כתובת ה-IP המקורית של המבקר, ראו שחזור כתובות IP מקוריות של מבקרים.

לחלופין, אם אינכם רוצים לקבל את כותרת CF-Connecting-IP או כל כותרת HTTP שעשויה להכיל את כתובת ה-IP של המבקר, הפעילו את ה-Managed Transform Remove visitor IP headers.

#CF-Connecting-IP בתת בקשות Worker

בתת בקשות Worker באותו אזור, הערך של CF-Connecting-IP משקף את הערך של x-real-ip (כתובת ה-IP של הלקוח). המשתמש יכול לשנות את x-real-ip בסקריפט ה-Worker שלו.

בתת בקשות בין אזורים, מאזור קלאודפלייר אחד לאזור קלאודפלייר אחר, ערך CF-Connecting-IP יוגדר לכתובת ה-IP של לקוח ה-Worker '2a06:98c0:3600::103' מטעמי אבטחה.

בתת בקשות Worker שמיועדות לאזור שאינו אזור של לקוח קלאודפלייר, סקריפט ה-Worker שולט בכותרות כתובת ה-IP של הלקוח: גם את CF-Connecting-IP וגם את x-real-ip ניתן לשנות באמצעות ה-Worker. אם תת הבקשה מעבירה את כותרות הבקשה המקורית ללא שינוי, שתי הכותרות משקפות את כתובת ה-IP של הלקוח.

כדי לאמת שהתעבורה מקורה באזור שלכם, השתמשו ב-Authenticated Origin Pulls ברמת האזור או לפי שם מארח, עם האישור שלכם, או ב-Cloudflare Tunnel.

כאשר לא מופעלת תת בקשת Worker, cf-connecting-ip משקפת את כתובת ה-IP של הלקוח וכותרת x-real-ip מוסרת.

#CF-Connecting-IPv6

קלאודפלייר מספקת תמיכה חינמית ב-IPv6 לכל הדומיינים בלי לדרוש הגדרה נוספת או חומרה. כדי לתמוך במעבר ל-IPv6, Pseudo IPv4 של קלאודפלייר מספק שירות תרגום מ-IPv6 ל-IPv4 לכל הדומיינים של קלאודפלייר.

אם Pseudo IPv4 מוגדר ל-Overwrite Headers, קלאודפלייר דורסת את הכותרות הקיימות Cf-Connecting-IP ו-X-Forwarded-For בכתובת IPv4 מדומה, ושומרת את כתובת ה-IPv6 האמיתית בכותרת CF-Connecting-IPv6.

#CF-EW-Via

כותרת זו משמשת לזיהוי לולאות, בדומה לכותרת CDN-Loop.

#CF-Pseudo-IPv4

אם Pseudo IPv4 מוגדר ל-Add Header, קלאודפלייר מוסיפה אוטומטית את כותרת CF-Pseudo-IPv4 עם כתובת IPv4 מסוג Class E שמגובבת מכתובת ה-IPv6 המקורית.

#True-Client-IP (תוכנית Enterprise בלבד)

True-Client-IP מספקת לשרת המקור את כתובת ה-IP המקורית של הלקוח. True-Client-IP זמינה רק בתוכנית Enterprise. בדוגמה שלהלן, 203.0.113.1 היא כתובת ה-IP המקורית של המבקר. לדוגמה: True-Client-IP: 203.0.113.1

אין הבדל בין הכותרות True-Client-IP ו-CF-Connecting-IP מלבד שם הכותרת. חלק מלקוחות Enterprise עם התקנים ישנים זקוקים ל-True-Client-IP כדי להימנע מעדכון חומות אש או מאזני עומסים כך שיקראו שם כותרת מותאם.

כדי להוסיף כותרת HTTP בשם True-Client-IP לבקשות, הפעילו את ה-Managed Transform Add "True-Client-IP" header.

לחלופין, אם אינכם רוצים לקבל את כותרת True-Client-IP או כל כותרת HTTP שעשויה להכיל את כתובת ה-IP של המבקר, הפעילו את ה-Managed Transform Remove visitor IP headers.

זהירות

אם אתם משתמשים בקלאודפלייר ב-CDN מוערם ומאמתים בקשות HTTP לפי ערך כתובת ה-IP בכותרת True-Client-IP, עליכם להוסיף כותרת True-Client-IP לבקשות. אם לא תוסיפו כותרת זו, ניתן לזייף את ערכה לכל ערך.

#X-Forwarded-For

X-Forwarded-For שומרת את כתובות ה-IP של שרת הפרוקסי ושל המבקר המקורי. אם לא הייתה כותרת X-Forwarded-For קיימת בבקשה שנשלחה לקלאודפלייר, ל-X-Forwarded-For יש ערך זהה לכותרת CF-Connecting-IP.

לדוגמה, אם כתובת ה-IP המקורית של המבקר היא 203.0.113.1 והבקשה שנשלחה לקלאודפלייר אינה מכילה כותרת X-Forwarded-For, קלאודפלייר תשלח X-Forwarded-For: 203.0.113.1 למקור.

לעומת זאת, אם כותרת X-Forwarded-For כבר הייתה קיימת בבקשה לקלאודפלייר, קלאודפלייר תוסיף לכותרת את כתובת ה-IP של פרוקסי ה-HTTP שמתחבר לקלאודפלייר. לדוגמה, אם כתובת ה-IP המקורית של המבקר היא 203.0.113.1 ובקשה עוברת דרך שני פרוקסים: פרוקסי A עם כתובת IP 198.51.100.101 ופרוקסי B עם כתובת IP 198.51.100.102, לפני שהיא עוברת בפרוקסי אל קלאודפלייר, קלאודפלייר תשלח למקור X-Forwarded-For: 203.0.113.1,198.51.100.101,198.51.100.102. פרוקסי A יוסיף את כתובת ה-IP של המבקר המקורי (203.0.113.1) ל-X-Forwarded-For לפני העברת הבקשה בפרוקסי אל פרוקסי B, אשר בתורו יוסיף את כתובת ה-IP של פרוקסי A (198.51.100.101) ל-X-Forwarded-For לפני העברת הבקשה בפרוקסי אל קלאודפלייר. ולבסוף, קלאודפלייר תוסיף את כתובת ה-IP של פרוקסי B (198.51.100.102) ל-X-Forwarded-For לפני העברת הבקשה בפרוקסי אל המקור.

אם אינכם רוצים לקבל את כתובת ה-IP של המבקר (וכתובות IP של פרוקסים מתווכים אחרים) בכותרת X-Forwarded-For, או כל כותרת HTTP שעשויה להכיל את כתובת ה-IP של המבקר, הפעילו את ה-Managed Transform Remove visitor IP headers. עבור כותרת X-Forwarded-For בפרט, Managed Transform זה יסיר את כתובת ה-IP של המבקר מערך הכותרת רק כאשר קלאודפלייר מקבלת בקשה שעברה בפרוקסי דרך CDN נוסף לפחות. במקרה זה, קלאודפלייר תשמור רק את כתובת ה-IP של הפרוקסי האחרון.

לפי הדוגמה הקודמת, שבה בקשה עברה בפרוקסי פעמיים (פרוקסים A ו-B) לפני שעברה בפרוקסי דרך קלאודפלייר, כש-Remove visitor IP headers מופעל, קלאודפלייר תשלח למקור X-Forwarded-For: 198.51.100.102, ותשמור רק את כתובת ה-IP של פרוקסי B (הפרוקסי האחרון לפני קלאודפלייר). ראו כתובת IP של המבקר בכותרת ה-HTTP x-forwarded-for לפרטים נוספים.

הערה

כדי לשחזר את כתובת ה-IP המקורית של המבקר בשרת המקור, קלאודפלייר ממליצה שהיומנים או היישומים שלכם יבדקו את CF-Connecting-IP או את True-Client-IP במקום את X-Forwarded-For. גם ל-CF-Connecting-IP וגם ל-True-Client-IP יש מבנה עקבי שמכיל כתובת IP אחת בלבד.

#X-Forwarded-Proto

X-Forwarded-Proto משמשת לזיהוי הפרוטוקול (HTTP או HTTPS) שבו המבקר התחבר לקלאודפלייר. כברירת מחדל, הפרוטוקול שבשימוש הוא https, אלא אם המבקר בחר מצב הצפנה אחר.

בבקשות נכנסות, הערך של כותרת זו יוגדר לפרוטוקול שבו השתמש הלקוח (http או https). אם הלקוח הגדיר ערך אחר, הערך יוחלף.

#Cf-Ray

כותרת Cf-Ray (הידועה גם כ-Ray ID) היא ערך מגובב שמקודד מידע על מרכז הנתונים ועל בקשת המבקר. לדוגמה: Cf-Ray: 230b030023ae2822-SJC.

כותרת Cf-Ray מזהה את מרכז הנתונים שמעבד את הבקשה כאשר היא מוצגת ככותרת תגובה. זה מיוצג בקוד בן שלוש אותיות שמתאים למיקום מרכז הנתונים.

כותרת Cf-Ray נשלחת גם לשרתי מקור במעלה הזרם, ועשויה להשתנות כדי לשקף את מרכז הנתונים המתחבר. זה קורה כאשר בקשה מנותבת דרך Argo Smart Routing או Argo Tiered Caching. במקרים כאלה, הקוד בן שלוש האותיות בכותרת Cf-Ray יציין את מרכז הנתונים שמתחבר למקור, ולא את מרכז הנתונים של הכניסה.

הוסיפו את כותרת Cf-Ray ליומני שרת המקור כדי להתאים בקשות שעברו בפרוקסי אל קלאודפלייר לבקשות ביומני השרת שלכם.

לקוחות Enterprise יכולים לראות את כל הבקשות דרך Cloudflare Logs, כולל נתונים שקשורים למרכז הנתונים של הכניסה.

#CF-IPCountry

כותרת CF-IPCountry מכילה קוד מדינה בן שני תווים של מדינת המבקר המקורי.

מלבד קודי ISO-3166-1 alpha-2, קלאודפלייר משתמשת בקודי המדינה המיוחדים הבאים:

  • XX: משמש ללקוחות בלי נתוני קוד מדינה.
  • T1: משמש ללקוחות שמשתמשים ברשת Tor.

כדי להוסיף כותרת זו לבקשות, יחד עם כותרות HTTP אחרות עם מידע מיקום לכתובת ה-IP של המבקר, הפעילו את ה-Managed Transform Add visitor location headers.

הערה

כותרת CF-IPCountry מוסרת מבקשות שנשלחות מ-Worker למקור שאינו עובר בפרוקסי מאחורי קלאודפלייר.

#CF-Visitor

כיום כותרת זו היא אובייקט JSON, שמכיל מפתח אחד בלבד בשם scheme. הכותרת תהיה HTTP או HTTPS, והיא רלוונטית רק אם אתם צריכים להפעיל Flexible SSL בהגדרות קלאודפלייר שלכם. לדוגמה: CF-Visitor: { \"scheme\":\"https\"}.

#CDN-Loop

CDN-Loop מאפשרת לקלאודפלייר לציין כמה פעמים בקשה יכולה להיכנס לרשת של קלאודפלייר לפני שהיא נחסמת כבקשה בלולאה. לדוגמה: CDN-Loop: cloudflare.

#CF-Connecting-O2O

אם נעשה שימוש ב-SSL for SaaS עבור האזור שבבעלות ספק ה-SaaS, כותרת HTTP תוגדר ל-cf-connecting-o2o: 1.

#CF-Worker

כותרת הבקשה CF-Worker מתווספת לתת בקשת Worker בקצה, ומזהה את המארח שהפעיל את תת הבקשה. לדוגמה: CF-Worker: example.com.

אפשר להוסיף את כותרת CF-Worker ביומני השרת באופן דומה להוספת כותרת CF-RAY. כדי לעשות זאת, הוסיפו את $http_cf_worker בקובץ מבנה היומן: log_format cf_custom "CF-Worker:$http_cf_worker"'

CF-Worker מתווספת לכל תת בקשות ה-Worker שנשלחות דרך fetch(). היא מוגדרת לשם האזור שבבעלותו ה-Worker שמבצע את תת הבקשה. לדוגמה, לסקריפט Worker בנתיב foo.example.com/* מתוך example.com יהיו כל תת הבקשות עם הכותרת:

CF-Worker: example.com

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

הערה

בעת הגדרת כללי WAF מותאמים, אל תתאימו לפי כותרת זו. כללים אלה מוחלים לפני שקלאודפלייר מוסיפה את כותרת CF-Worker. במקום זאת, השתמשו בשדה cf.worker.upstream_zone, שמכיל את אותו ערך וקיים לאותה מטרה.

כדי לחסום Worker מסוים, הוסיפו פעולת Block שמופעלת על ידי הביטוי cf.worker.upstream_zone eq "example.com".

כדי לחסום את כל תת בקשות ה-Worker מלבד אלה מ-Worker של האזור שלכם, הוסיפו פעולת Block שמופעלת על ידי הביטוי not (cf.worker.upstream_zone in {"" "customer-zone.com"}).

#Connection

בבקשות נכנסות, הערך של כותרת זו תמיד יוגדר ל-Keep-Alive. אם הלקוח הגדיר ערך אחר, כגון close, הערך יוחלף. שימו לב שכך גם כאשר הלקוח מתחבר באמצעות HTTP/2 או HTTP/3.

#שיקולים עבור Spectrum

בעת שימוש ב-Spectrum עם יישום TCP, כותרות אלה אינן גלויות במקור משום שהן כותרות HTTP. אם ברצונכם להשתמש בהן ביישום שלכם, יש שתי אפשרויות:

#כותרות תגובה

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

#כותרות תגובה שהוסרו

קלאודפלייר מעבירה את כל כותרות ה-HTTP בתגובה משרת המקור בחזרה למבקר, למעט הכותרות הבאות:

  • X-Accel-Buffering
  • X-Accel-Charset
  • X-Accel-Limit-Rate
  • X-Accel-Redirect
  • Alt-Svc
  • Cache-Tag: מוסרת לפני שהתגובה נשלחת למבקר או מועברת ל-Worker. ראו ניקוי לפי cache-tags.

#כותרות תגובה שנוספו

קלאודפלייר מוסיפה את כותרות ה-HTTP המפורטות להלן לתגובה שנשלחת למבקר.

#Cf-Ray

ערך Cf-Ray שמוחזר למבקר יהיה אותו ערך Cf-Ray שנשלח לשרת המקור.

#Cf-Cache-Status

רשימה של כל הערכים האפשריים של Cf-Cache-Status נמצאת ב-תגובות מטמון של קלאודפלייר.