انتقال HTTP به HTTPS در Nginx - وان سرور آکـادمی
انتقال HTTP به HTTPS در Nginx
انتقال HTTP به HTTPS در Nginx

انتقال HTTP به HTTPS در Nginx

زمان تقریبی مطالعه: 3 دقیقه

آموزش انتقال HTTP به HTTPS در Nginx

در این آموزش ، نحوه انتقال ترافیک HTTP به HTTPS را در Nginx توضیح خواهیم داد.

Nginx تلفظ ” engine x” سرور HTTP با منبع باز و با عملکرد بالا و پروکسی معکوس است که مسئولیت رسیدگی به بار برخی از بزرگترین سایت های اینترنت را دارد.

در مطالب قبل نحوه نصب وب سرور Nginx و همچنین دستورات کاربردی و مهم Nginx را آموزش دادیم.

اگر توسعه دهنده هستید یا مدیر سیستم، احتمال دارد که مرتباً با Nginx سر و کار داشته باشید. یکی از رایج ترین کارهایی که احتمالاً انجام می دهید تغییر مسیر ترافیک HTTP به نسخه امن (HTTPS) وب سایت شما است.

برخلاف HTTP ، در جایی که درخواست ها و پاسخ ها به صورت ساده ارسال می شوند ، HTTPS از TLS / SSL برای رمزگذاری ارتباط بین مشتری و سرور استفاده می کند.

استفاده از HTTPS نسبت به HTTP مزایای زیادی دارد ، مانند:

  • تمام داده ها از دو جهت رمزگذاری می شوند. در نتیجه ، در صورت رهگیری ، اطلاعات حساس قابل خواندن نیستند.
  • Google Chrome و سایر مرورگرهای مشهور وب سایت شما را ایمن علامت گذاری می کنند.
  • HTTPS به شما امکان می دهد از پروتکل HTTP / 2 استفاده کنید ، که به طور قابل توجهی عملکرد سایت را بهبود می بخشد.
  • Google از وب سایت های HTTPS طرفداری می کند. اگر از HTTPS استفاده شود سایت شما رتبه بهتری خواهد داشت.

روش ارجح برای تغییر مسیر HTTP به HTTPS در Nginx ، پیکربندی یک بلوک سرور مجزا برای هر نسخه از سایت است. شما باید از هدایت ترافیک با استفاده از بخشنامه if جلوگیری کنید ، زیرا این امر باعث می شود رفتار غیرقابل پیش بینی سرور باشد.

برای خرید سرور مجازی با کانفیگ حرفه ای دایرکت ادمین و Nginx کلیک کنید.

HTTP را به HTTPS در هر سایت تغییر مسیر دهید

برای تغییر مسیر یک وب سایت واحد به HTTPS ، پرونده پیکربندی دامنه را باز کنید و تغییرات زیر را انجام دهید:

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

بیایید خط کد را به صورت خطی تجزیه کنیم:

  • listen 80 – بلوک سرور اتصالات ورودی در پورت 80 را برای دامنه مشخص شده گوش می دهد.
  • server_name one3erver.com www.one3erver.com – نام دامنه بلوک سرور را مشخص می کند. حتماً آن را با نام دامنه خود جایگزین کنید.
  • return 301 https://one3erver.com$request_uri – ترافیک را به نسخه HTTPS سایت هدایت کنید. متغیر $request_uri درخواست اصلی URI از جمله آرگومان ها است.

معمولاً شما همچنین می خواهید نسخه HTTPS www سایت را به غیر www یا برعکس تغییر مسیر دهید. روش پیشنهادی برای انجام تغییر مسیر ایجاد یک بلوک سرور مجزا برای نسخه های www و غیر www است.

به عنوان مثال ، برای تغییر مسیر درخواستهای HTTPS www به غیر www ، از پیکربندی زیر استفاده می کنید:

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

server {
    listen 443 ssl http2;
    server_name www.one3erver.com;

    # . . . other code

    return 301 https://one3erver.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name one3erver.com;

    # . . . other code
}

همه سایتها را به HTTPS هدایت کنید

اگر تمام وب سایت های میزبان در سرور برای استفاده از HTTPS پیکربندی شده اند ، و شما نمی خواهید یک بلوک سرور HTTP جداگانه برای هر سایت ایجاد کنید ، می توانید یک بلاک سرور HTTP همه گیر ایجاد کنید. این بلوک کلیه درخواست های HTTP را به بلوک های مناسب HTTPS هدایت می کند.

برای ایجاد یک بلاک HTTP همه گیرنده ، که بازدید کنندگان را به نسخه HTTPS سایت هدایت می کند ، پرونده پیکربندی Nginx را باز کنید و تغییرات زیر را انجام دهید:

بیایید خط کد را به صورت خطی آنالیز کنیم:

  • listen 80 default_server – این بلوک سرور را به عنوان پیش فرض (گرفتن همه) برای همه دامنه های غیر همسان تنظیم می کند.
  • server_name __ یک نام دامنه نامعتبر است که هرگز با هیچ نام دامنه واقعی مطابقت ندارد.
  • return 301 https://$host$request_uri – ترافیک را به بلوک سرور HTTPS مربوطه با کد وضعیت 301 (انتقال دائمی) هدایت کنید. متغیر $host نام دامنه درخواست را در اختیار دارد.

به عنوان مثال ، اگر بازدید کننده http://example.com/page2 در مرورگر باز کند ، Nginx درخواست را به https://example.com/page2 هدایت می کند.

در صورت امکان ، به جای یک HTTP جهانی برای تغییر مسیر HTTPS ، تغییر مسیر را بر اساس هر دامنه ایجاد کنید.

نتیجه

هنگامی که مجوز SSL را در وب سایت خود نصب کردید ، باید ترافیک HTTP را به HTTPS هدایت کنید.

در Nginx ، راه ارجح برای هدایت HTTP به HTTPS ایجاد بلوک جداگانه سرور و انجام 301 تغییر مسیر است.

اولین نفری باشید که از آموزشها و تخفیفهای ویژه با خبر میشوید 😉
با عضویت در خبرنامه از 80 درصد تخفیف بهره مند شوید

5/5 - (1 امتیاز)