يقوم Nginx بإعادة توجيه HTTP إلى HTTPS

Nginx Redirect Http Https



Nginx ، يُنطق باسم Engine x ، هو موقع ويب مجاني وعالي الأداء يعتمد على نظام Linux ومفتوح المصدر وخادم وكيل عكسي مسؤول عن إدارة ومعالجة حمل أكبر عدد من زيارات مواقع الويب على الإنترنت. 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 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.

دعونا نوضح بمثال. إذا كنت ترغب في إعادة توجيه طلبات www HTTPS إلى الإصدار الذي لا يحتوي على 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 إما لمجال محدد أو إعادة توجيه الكل. قد تساعدك هذه الطريقة ، التي ذكرناها في هذه المقالة ، في جعل موقع الويب الخاص بك أكثر أمانًا عن طريق إجراء أي تغييرات في تجربة المستخدم.