Nginx Redirect HTTP ke HTTPS

Nginx Redirect Http Https



Nginx, diucapkan sebagai Engine x, adalah web berprestasi tinggi berasaskan Linux percuma dan pelayan proksi terbalik yang bertanggungjawab untuk mengurus dan menangani banyak trafik laman web terbesar di internet. Nginx adalah alat pengalihan semula yang kuat yang dapat dikonfigurasi dengan mudah pada sistem anda untuk mengalihkan lalu lintas web HTTP yang kurang selamat atau tidak disulitkan ke pelayan web HTTPS yang dienkripsi dan selamat. Sekiranya anda adalah pentadbir sistem atau pembangun, maka anda selalu menggunakan pelayan Nginx.

Dalam artikel ini, kami akan mengusahakan cara mengarahkan lalu lintas web dari HTTP ke HTTPS yang selamat di Nginx.







Respons dan permintaan dikembalikan dalam bentuk teks biasa dalam HTTP, sedangkan HTTPS menggunakan SSL / TLS untuk mengenkripsi komunikasi antara sistem klien dan pelayan. Oleh itu kerana banyak sebab, HTTPS digunakan melalui HTTP, yang disenaraikan di bawah:



  • Semua data antara pelayan pelanggan di kedua arah dienkripsi. Walau bagaimanapun, sesiapa sahaja tidak dapat mengakses maklumat sensitif jika dipintas.
  • Semasa anda menggunakan HTTPS, Google Chrome dan penyemak imbas lain akan menganggap domain laman web anda selamat.
  • Versi HTTPS meningkatkan prestasi laman web yang anda tentukan menggunakan protokol HTTP / 2.
  • Sekiranya anda melayani domain laman web anda melalui HTTPS, maka laman web akan berada di kedudukan yang lebih baik di Google, kerana ia menyokong semua laman web yang dilindungi HTTPS.

Adalah lebih baik untuk mengalihkan HTTP lalu lintas ke HTTPS di Nginx dalam blok pelayan yang berasingan untuk setiap versi laman web. Sebaiknya hindari mengarahkan lalu lintas menggunakan arahan jika yang boleh menyebabkan tingkah laku pelayan yang tidak biasa.



Ubah arah semua lalu lintas dari HTTP ke HTTPS

Tambahkan perubahan berikut ke dalam file konfigurasi Nginx untuk mengalihkan semua lalu lintas dari HTTP ke versi HTTPS:





pelayan {
dengar 80pelayan_ lalai;
nama pelayan _;
kembali 301https: //$ tuan rumah$ permintaan_uri;
}

Di bawah ini, kami telah menghuraikan setiap istilah yang disebutkan di atas:

Dengarkan 80 default_server - ini akan memberi isyarat kepada sistem anda yang menangkap semua lalu lintas HTTP di Port 80.
Server_name _ - ia adalah domain yang akan dipadankan dengan nama host apa pun.



Return 301 https: // $ host $ request_uri - ini memberitahu enjin carian anda yang mengarahkannya secara kekal. Ini menetapkan bahawa pemboleh ubah $ host menyimpan nama domain.

Sebaik sahaja anda menukar tetapan konfigurasi, anda perlu memuatkan semula perkhidmatan Nginx pada sistem anda. Oleh itu, muatkan semula perkhidmatan Nginx anda dengan menggunakan arahan berikut:

$sudosistemctl tambah nilai nginx

Ubah hala HTTP ke versi HTTPS untuk Domain yang ditentukan di Nginx

Setelah memasang sijil SSL di domain anda, anda akan mempunyai dua pilihan blok pelayan untuk domain ini. Satu blok adalah untuk versi HTTP yang mendengar pada port 80, dan versi kedua adalah HTTPS pada port 443. Walau bagaimanapun, untuk mengalihkan satu domain laman web dari HTTP ke HTTPS, anda perlu membuka konfigurasi Nginx. Anda boleh mencari fail konfigurasi ini di direktori / etc / nginx / sites-available. Walau bagaimanapun, jika anda tidak menemui fail ini, anda boleh mencarinya dengan /etc/nginx/nginx.conf, / usr / local / nginx / conf atau / usr / local / etc / nginx, dan kemudian lakukan berikut perubahan dalam fail ini:

pelayan {
dengar 80;
nama pelayan domain-name.com www.domain-name.com;
kembali 301https://domain-name.com$ permintaan_uri;
}

Mari kita fahami baris demi baris kod di atas.
Dengarkan 80 - menggunakan port 80, pelayan akan mendengar semua sambungan masuk yang ditentukan domain.

Server_name domain-name.com www.domain-name.com - ia menentukan nama domain. Oleh itu, gantikan dengan nama domain laman web anda yang ingin anda ubah hala.

Kembali 301 https: //domain-name.com$request_uri - ia mengalihkan lalu lintas ke versi HTTPS laman web. Pemboleh ubah $ request_uri digunakan untuk URI permintaan asal penuh di mana argumen juga disertakan.

Dengan menggunakan kaedah berikut, anda boleh mengarahkan lalu lintas ke versi HTTPS www ke versi laman web bukan www. Adalah disyorkan untuk membuat pengalihan di blok pelayan yang berasingan untuk versi bukan www dan www.

Mari kita jelaskan dengan contoh. Sekiranya anda ingin mengalihkan permintaan HTTP www ke versi bukan www, maka anda akan mengikuti konfigurasi berikut:

pelayan {
dengar 80;
nama pelayan domain-name.com www.domain-name.com;
kembali 301https://domain-name.com$ permintaan_uri;
}
pelayan {
dengar 443 ssl http2;
nama pelayan www.domain-nama.com;
#. . . kod lain
kembali 301https://domain-name.com$ permintaan_uri;
}
pelayan {
dengar 443 ssl http2;
nama pelayan domain-name.com;

#. . . kod lain
}

Ganti nama domain dengan domain anda, seperti www.linuxhint.com.

Kesimpulannya

Kami telah membincangkan cara mengarahkan lalu lintas dari versi HTTP ke HTTPS di pelayan Nginx. Dengan mengubah tetapan fail konfigurasi Nginx, anda dapat dengan mudah mengarahkan lalu lintas ke HTTPS sama ada untuk domain yang ditentukan atau mengalihkan semua. Kaedah ini, yang telah kami sebutkan dalam artikel ini, dapat membantu anda menjadikan laman web anda lebih selamat dengan membuat perubahan dalam pengalaman pengguna.