Nginx הפניה HTTP ל- HTTPS

Nginx Redirect Http Https



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

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







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



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

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



הפנה את כל התעבורה מ- HTTP ל- HTTPS

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





שרת {
להקשיב 80שרת ברירת המחדל;
שם שרת _;
לַחֲזוֹר 301https: //מארח $$ request_uri;
}

להלן, פירטנו כל מונח שהוזכר לעיל:

האזן 80 server_ default_server - זה יאותת למערכת שלך שתופסת את כל תעבורת HTTP ביציאה 80.
Server_name _ - זהו הדומיין שיתאים לכל שם מארח.



החזר 301 https: // $ host $ request_uri - זה אומר למנועי החיפוש שלך שמנתבים אותו לצמיתות. הוא מציין שהמשתנה $ host מחזיק את שמות הדומיין.

לאחר שתשנה את הגדרות התצורה, עליך לטעון מחדש את שירותי Nginx במערכת שלך. לכן, טען מחדש את שירותי Nginx שלך באמצעות הפקודה הבאה:

$סודוsystemctl טען מחדש nginx

הפנה HTTP לגרסת HTTPS לדומיין שצוין ב- Nginx

לאחר התקנת תעודת SSL על הדומיין שלך, יהיו לך שתי אפשרויות לחסימת שרת לדומיין זה. בלוק אחד מיועד להאזנת גרסת HTTP ביציאה 80, והגרסה השנייה היא HTTPS ביציאה 443. עם זאת, כדי להפנות דומיין אתר יחיד מ- HTTP ל- HTTPS, עליך לפתוח את תצורת Nginx. תוכל לאתר קובץ תצורה זה בספרייה/etc/nginx/sites-available. בכל מקרה, אם לא מצאת את הקובץ הזה, תוכל לחפש אותו באמצעות /etc/nginx/nginx.conf,/usr/local/nginx/conf או/usr/local/etc/nginx ולאחר מכן לבצע את השינויים הבאים בקובץ זה:

שרת {
להקשיב 80;
שם שרת domain-name.com www.domain-name.com;
לַחֲזוֹר 301https://domain-name.com$ request_uri;
}

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

Server_name domain-name.com www.domain-name.com-הוא מציין את שמות הדומיין. לכן, החלף אותו בשם הדומיין של האתר שברצונך להפנות.

החזר 301 https: //domain-name.com$request_uri-זה מעביר את התנועה לגרסת HTTPS של האתר. המשתנה $ request_uri משמש עבור URI הבקשה המקורית המלאה שבה נכללים גם ארגומנטים.

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

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

שרת {
להקשיב 80;
שם שרת domain-name.com www.domain-name.com;
לַחֲזוֹר 301https://domain-name.com$ request_uri;
}
שרת {
להקשיב 443 ssl http2;
שם שרת www.domain-name.com;
#. . . קוד אחר
לַחֲזוֹר 301https://domain-name.com$ request_uri;
}
שרת {
להקשיב 443 ssl http2;
שם שרת domain-name.com;

#. . . קוד אחר
}

החלף את שם הדומיין בדומיין שלך, כמו www.linuxhint.com.

סיכום

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