בדף הזה מוסבר איך להגדיר הפניה אוטומטית מ-HTTP ל-HTTPS למאזן עומסים חיצוני אזורי של אפליקציות (ALB). הדף הזה רלוונטי רק למאזן עומסים חיצוני אזורי של אפליקציות (ALB). אם אתם משתמשים במאזן עומסים במצב אחר, כדאי לעיין באחד מהדפים הבאים:
הגדרת הפניה אוטומטית מ-HTTP ל-HTTPS במאזני עומסים גלובליים חיצוניים של אפליקציות
הגדרת הפניה אוטומטית מ-HTTP ל-HTTPS במאזן עומסים קלאסי של אפליקציות (ALB)
בדוגמה הזו מוצג איך להשתמש בהפניות אוטומטיות של מפת URL כדי להפנות את כל הבקשות מ-HTTP ל-HTTPS. בדוגמה הזו מוסבר איך להגדיר הפניות אוטומטיות באמצעות היציאות המוכרות 80 (ל-HTTP) ו-443 (ל-HTTPS). עם זאת, לא חובה להשתמש במספרי היציאה הספציפיים האלה. כל כלל העברה של מאזן עומסים של אפליקציה יכול להפנות ליציאה אחת מתוך 1-65535.
פרוטוקול HTTPS משתמש ב-TLS (או ב-SSL) כדי להצפין בקשות ותשובות של HTTP, וכך הופך את החיבור לבטוח ומאובטח יותר. באתר שמשתמש ב-HTTPS, כתובת ה-URL מתחילה ב-https:// במקום ב-http://.
למאזני עומסים חדשים מסוג HTTPS
מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB) לא תומכים ביצירת הפניות אוטומטיות מ-HTTP ל-HTTPS בזמן יצירת מאזן עומסים חדש. קודם צריך לפעול לפי ההוראות במדריך בנושא קצה עורפי של Compute Engine כדי ליצור מאזן עומסים חדש. אחר כך תוכלו להשתמש בהוראות שבקטע הבא כדי להגדיר הפניה אוטומטית לכל הבקשות מ-HTTP ל-HTTPS.
ההליך הזה מניח שכבר יש לכם מאזן עומסים חיצוני מסוג HTTPS שמציג תנועת HTTPS ביציאה 443.
למאזני עומסים קיימים
אם כבר יש לכם מאזן עומסים של אפליקציות ב-HTTPS (שנקרא כאן LB1) שמשרת תעבורת HTTPS ביציאה 443, אתם צריכים ליצור מאזן עומסים חלקי של אפליקציות ב-HTTP (שנקרא כאן LB2) עם ההגדרה הבאה:
- אותה כתובת IP של חזית העורף שמשמשת את LB1
- הפניה אוטומטית שהוגדרה במפת URL
מאזן העומסים החלקי של HTTP משתמש באותה כתובת IP כמו מאזן העומסים של HTTPS, ומפנה בקשות HTTP לחלק הקדמי של מאזן העומסים של HTTPS.
הארכיטקטורה הזו מוצגת בתרשים הבא.
הפניית תנועה למאזן העומסים של HTTPS
אחרי שמוודאים שמאזן העומסים של HTTPS (LB1) פועל, אפשר ליצור את מאזן העומסים החלקי של HTTP (LB2) עם קצה קדמי שהוגדר להפניה אוטומטית של תעבורה אל LB1.
בדוגמה הזו נעשה שימוש בקוד התגובה 301. במקום זאת, אפשר להשתמש בקוד תגובה אחר.
כדי להגדיר את ההפניה האוטומטית באמצעות gcloud, צריך לייבא קובץ YAML ולוודא ש-Proxy ה-HTTP של היעד מפנה למפת URL שמפנה את התנועה. אם אתם משתמשים במסוף Google Cloud , המערכת מטפלת בזה בשבילכם.
אין תמיכה במאזני עומסים חיצוניים אזוריים של אפליקציות (ALB) במסוף Google Cloud .
gcloud
- יוצרים קובץ YAML
/tmp/web-map-http.yaml. בדוגמה הזו נעשה שימוש ב-MOVED_PERMANENTLY_DEFAULT כקוד התגובה. - יוצרים את מפת ה-URL של מאזן העומסים של HTTP על ידי ייבוא קובץ ה-YAML. השם של מפת ה-URL הזו הוא
web-map-http. - מוודאים שמפת URL מעודכנת. מפת ה-URL של מאזן העומסים מסוג HTTP אמורה להיראות בערך כך:
- יוצרים proxy חדש מסוג HTTP ליעד או מעדכנים proxy קיים מסוג HTTP ליעד,
באמצעות
web-map-httpכמפת כתובות ה-URL. - יוצרים כלל העברה כדי להפנות בקשות נכנסות לשרת הפרוקסי. הדגל
--addressמציין אתlb-ipv4-1, שהיא אותה כתובת IP שמשמשת למאזן העומסים החיצוני מסוג HTTPS.
kind: compute#urlMap name: web-map-http defaultUrlRedirect: redirectResponseCode: MOVED_PERMANENTLY_DEFAULT httpsRedirect: True tests: - description: Test with no query parameters host: example.com path: /test/ expectedOutputUrl: https://example.com/test/ expectedRedirectResponseCode: 301 - description: Test with query parameters host: example.com path: /test/?parameter1=value1¶meter2=value2 expectedOutputUrl: https://example.com/test/?parameter1=value1¶meter2=value2 expectedRedirectResponseCode: 301
gcloud compute url-maps import web-map-http \
--source /tmp/web-map-http.yaml \
--region=REGION
אם אתם מעדכנים מפת URL קיימת, תופיע ההודעה הבאה:
Url Map [web-map-http] will be overwritten.
Do you want to continue (Y/n)?
כדי להמשיך, מקישים על Y.
gcloud compute url-maps describe web-map-http \
--region=REGION
creationTimestamp: '2020-03-23T10:53:44.976-07:00' defaultUrlRedirect: httpsRedirect: true redirectResponseCode: MOVED_PERMANENTLY_DEFAULT fingerprint: 3A5N_RLrED8= id: '2020316695093397831' kind: compute#urlMap name: web-map-http selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/urlMaps/web-map-http
gcloud compute target-http-proxies create http-lb-proxy \
--url-map=web-map-http \
--region=REGION
gcloud compute target-http-proxies update http-lb-proxy \
--url-map=web-map-http \
--region=REGION
gcloud compute forwarding-rules create http-content-rule \
--load-balancing-scheme=EXTERNAL_MANAGED \
--address=lb-ipv4-1 \
--network-tier=STANDARD \
--region=REGION \
--target-http-proxy=http-lb-proxy \
--target-http-proxy-region=REGION \
--ports=80
בדיקת ההפניה האוטומטית מ-HTTP ל-HTTPS
שימו לב לכתובת ה-IP השמורה שבה אתם משתמשים בשני מאזני העומסים.
gcloud compute addresses describe lb-ipv4-1
--format="get(address)"
--region=REGION
בדוגמה הזו, נניח שכתובת ה-IP השמורה היא 34.98.77.106. כתובת ה-URL http://34.98.77.106/ מפנה אל https://34.98.77.106/.
אחרי כמה דקות, אפשר להריץ את הפקודה הבאה כדי לבדוק את זה:
curl
curl -v http://hostname.com
פלט לדוגמה:
* Connected to 34.98.77.106 (34.98.77.106) port 80 (#0) > GET / HTTP/1.1 > Host: hostname.com > User-Agent: curl/7.64.0 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Cache-Control: private < Content-Type: text/html; charset=UTF-8 < Referrer-Policy: no-referrer < Location: https://hostname.com < Content-Length: 220 < Date: Fri, 30 Jul 2021 21:32:25 GMT < <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://hostname.com">here</A>. </BODY></HTML> * Connection #0 to host hostname.com left intact
הליכים קשורים
כדי להשתמש ב-Terraform, אפשר לעיין בכרטיסייה בנושא הפניה אוטומטית מ-HTTP ל-HTTPS.
להגדרות בסביבת GKE, תוכלו לקרוא את המאמר הפניות אוטומטיות מ-HTTP ל-HTTPS במסמכי GKE.
לגבי מאזני עומסים פנימיים של אפליקציות, אפשר לעיין במאמר הגדרת הפניה אוטומטית מ-HTTP ל-HTTPS עבור מאזני עומסים פנימיים של אפליקציות.
למידע על סוגים אחרים של הפניות אוטומטיות, אפשר לעיין במאמר בנושא הפניות אוטומטיות של כתובות URL.