אנדרואיד

הפנה מחדש ל- http ל- https ב- nginx

How to Setup SSL with NGINX

How to Setup SSL with NGINX

תוכן עניינים:

Anonim

במדריך זה נסביר כיצד להפנות מחדש את תעבורת HTTP ל- HTTPS ב- Nginx.

Nginx מבוטא "engine x" הוא שרת פרוקסי HTTP ושירותי פרוקסי הפוך עם קוד פתוח חזק ואחראי על הטיפול בעומס של כמה מהאתרים הגדולים באינטרנט.

בשונה מ- HTTP, שם בקשות ותגובות נשלחות ומחזירות בפשוט, HTTPS משתמש ב- TLS / SSL כדי להצפין את התקשורת בין הלקוח לשרת.

ישנם יתרונות רבים של שימוש ב- HTTPS באמצעות HTTP, כגון:

  • כל הנתונים מוצפנים בשני הכיוונים. כתוצאה מכך, לא ניתן לקרוא מידע רגיש אם יירט אותו. Google Chrome וכל הדפדפנים הפופולריים האחרים יסמנו את האתר שלך כבטוח. HTTPS מאפשרת לך להשתמש בפרוטוקול HTTP / 2, שמשפר משמעותית את ביצועי האתר. גוגל מעדיף אתרי HTTPS. האתר שלך ידורג טוב יותר אם הוא מוגש באמצעות

השיטה המועדפת להפנות HTTP ל- HTTPS ב- Nginx היא להגדיר חסימת שרת נפרדת עבור כל גרסה באתר. עליך להימנע מניתוב מחדש של התנועה באמצעות ההנחיה if, מכיוון שהוא עלול לגרום להתנהגות בלתי צפויה של השרת.

הפנה מחדש HTTP ל- HTTPS לכל אתר

כדי להפנות אתר בודד ל- HTTPS פתח את קובץ תצורת הדומיין וערוך את השינויים הבאים:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

בואו נשבר את הקוד שורה אחר שורה:

  • listen 80 - חסימת השרת תקשיב לחיבורים נכנסים ביציאה 80 עבור הדומיין שצוין. server_name linuxize.com www.linuxize.com - מציין את שמות הדומיין של חסימת השרת. הקפד להחליף אותו בשם הדומיין שלך. return 301 - הפנה מחדש את התעבורה לגירסת HTTPS של האתר. המשתנה $request_uri הוא URI המקורי המלא לבקשה כולל הטיעונים.

לרוב, תרצה גם להפנות מחדש את גרסת ה- HTTPS www לאתר הלא-www או להפך. הדרך המומלצת לבצע את ההפניה מחדש היא ליצור חסימת שרת נפרדת הן לגירסאות www והן לא לגרסאות www.

לדוגמה, להפניה מחדש של בקשות HTTPS www ל- non-www, היית משתמש בתצורה הבאה:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

הפנה מחדש את כל האתרים ל- HTTPS

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

ליצירת חסימת HTTP יחידה הכוללת אפשרות שתפנה את המבקרים לגירסת HTTPS של האתר תפתח את קובץ התצורה של Nginx ויבצע את השינויים הבאים:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

בואו ננתח את הקוד שורה אחר שורה:

  • listen 80 default_server - מגדיר את חסימת השרת כבלוק ברירת המחדל (catch-all) עבור כל הדומיינים שאין להם תחרות. server_name _ - _ הוא שם תחום לא חוקי שאינו תואם אף שם תחום אמיתי. return 301 - הפנה מחדש את התעבורה לחסימה של שרת HTTPS המתאים עם קוד סטטוס 301 (הועבר לצמיתות). משתנה $host מחזיק את שם הדומיין של הבקשה.

לדוגמה, אם האורח פותח את http://example.com/page2 בדפדפן, Nginx יפנה מחדש את הבקשה אל https://example.com/page2 .

במידת האפשר, העדיף ליצור ניתוב מחדש על בסיס דומיין במקום הפניה גלובלית ל- HTTP ל-

סיכום

לאחר שתתקין אישור SSL באתר שלך, עליך להפנות מחדש את תעבורת HTTP ל-

ב- Nginx, הדרך המועדפת להפנות HTTP ל- HTTPS היא ליצור חסימות שרת נפרדות ולביצוע הפניה מחדש של 301.

nginx