Nginx

Nginx Redirect HTTP ke HTTPS

Nginx Redirect HTTP ke HTTPS
Nginx, diucapkan sebagai "Engine x", adalah web berprestasi tinggi berasaskan Linux sumber terbuka percuma dan pelayan proksi terbalik yang bertanggungjawab untuk mengurus dan menangani muatan lalu lintas laman web terbesar di internet. Nginx adalah alat pengalihan semula yang kuat yang dapat dikonfigurasi dengan mudah pada sistem anda untuk mengarahkan 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 pelanggan dan pelayan. Oleh itu kerana banyak sebab, HTTPS digunakan melalui HTTP, yang disenaraikan di bawah:

Adalah lebih baik untuk mengalihkan HTTP lalu lintas ke HTTPS di Nginx dalam blok pelayan yang berasingan untuk setiap versi laman web. Dianjurkan juga untuk mengelakkan pengalihan lalu lintas menggunakan arah "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
dengarkan 80 default_server;
nama pelayan _;
pulangkan 301 https: // $ host $ request_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 trafik 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 menentukan 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:

$ sudo systemctl muat semula 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. 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 perubahan berikut dalam fail ini:

pelayan
dengar 80;
nama-nama domain pelayan.com www.nama domain.com;
pulangkan 301 https: // nama-domain.com $ request_uri;

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

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

Kembalikan 301 https: // nama-domain.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 kaedah berikut, anda boleh mengalihkan 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_ nama domain pelayan.com www.nama domain.com;
pulangkan 301 https: // nama-domain.com $ request_uri;

pelayan
dengar 443 ssl http2;
pelayan_nama www.nama domain.com;
# ... kod lain
pulangkan 301 https: // nama-domain.com $ request_uri;

pelayan
dengar 443 ssl http2;
nama_ nama domain pelayan.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 pada pelayan Nginx. Dengan mengubah tetapan fail konfigurasi Nginx, anda dapat dengan mudah mengalihkan 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.

Cara membalikkan arah tatal Tetikus dan Pad Sentuh pada Windows 10
Tetikus dan Pad sentuhs bukan sahaja menjadikan pengkomputeran mudah, tetapi lebih cekap dan kurang memakan masa. Kami tidak dapat membayangkan kehidu...
Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...
Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...