Android

Redirect http ke https in nginx

Redirect http to https on Nginx

Redirect http to https on Nginx

Isi kandungan:

Anonim

Dalam panduan ini, kami akan menerangkan bagaimana untuk mengalihkan trafik HTTP ke HTTPS di Nginx.

Nginx menyatakan "enjin x" adalah pelayan bebas, sumber terbuka, HTTP berprestasi tinggi dan pelayan proksi terbalik yang bertanggungjawab untuk mengendalikan beban beberapa laman web terbesar di Internet.

Tidak seperti HTTP, di mana permintaan dan respons dihantar dan dikembalikan dalam plaintext, HTTPS menggunakan TLS / SSL untuk menyulitkan komunikasi antara pelanggan dan pelayan.

Terdapat banyak manfaat menggunakan HTTPS melalui HTTP, seperti:

  • Semua data disulitkan dalam kedua-dua arah. Akibatnya, maklumat sensitif tidak boleh dibaca jika dipintas.Google Chrome dan semua pelayar popular lain akan menandakan laman web anda sebagai selamat.HTTPS membolehkan anda menggunakan protokol HTTP / 2, yang dengan ketara meningkatkan prestasi laman web.Google memihak kepada laman web HTTPS. Laman anda akan lebih baik jika dilayan melalui

Kaedah yang diutamakan untuk mengalihkan HTTP ke HTTPS di Nginx adalah untuk mengkonfigurasi blok pelayan berasingan bagi setiap versi laman web ini. Anda harus mengelakkan mengalihkan lalu lintas menggunakan arahan jika dapat menyebabkan tingkah laku yang tidak menentu dari pelayan.

Redirect HTTP ke HTTPS bagi setiap Situs

Untuk mengalihkan satu laman web ke HTTPS membuka fail konfigurasi domain dan buat perubahan berikut:

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

Mari kita memecahkan baris kod demi baris:

  • listen 80 - Blok pelayan akan mendengar sambungan masuk pada port 80 untuk domain yang ditentukan. server_name linuxize.com www.linuxize.com - Menentukan nama domain blok pelayan. Pastikan anda menggantikannya dengan nama domain anda. return 301 - return 301 lalu lintas ke versi HTTPS tapak. Pembolehubah $request_uri adalah URI permintaan asal penuh termasuk argumen.

Biasanya, anda juga ingin mengarahkan versi HTTPS www tapak ke non-www atau sebaliknya. Cara yang disyorkan untuk melakukan redirect adalah untuk membuat blok pelayan yang berasingan untuk kedua-dua www dan bukan-www versi.

Sebagai contoh, untuk mengalihkan permintaan www HTTPS ke bukan-www, anda akan menggunakan konfigurasi berikut:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Redirect Semua Tapak ke HTTPS

Sekiranya semua laman web yang dihoskan pada pelayan dikonfigurasi untuk menggunakan HTTPS, dan anda tidak mahu membuat blok pelayan HTTP yang berasingan untuk setiap laman web anda boleh mencipta blok pelayan HTTP semua tangkapan. Blok ini akan mengalihkan semua permintaan HTTP ke blok HTTPS yang sesuai.

Untuk membuat blok HTTP tangkapan tunggal yang akan mengalihkan pelawat ke versi HTTPS tapak buka fail konfigurasi Nginx dan buat perubahan berikut:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Mari kita analisa baris kod demi baris:

  • listen 80 default_server - listen 80 default_server blok pelayan ini sebagai blok lalai (catch-all) untuk semua domain yang tidak dapat ditandingi. server_name _ - _ adalah nama domain yang tidak sah yang tidak sepadan dengan nama domain sebenar. return 301 - Mengalihkan lalu lintas ke blok server HTTPS yang sepadan dengan kod status 301 (Dipindahkan Secara Permanen). Pembolehubah $host memegang nama domain permintaan.

Contohnya, jika pelawat membuka http://example.com/page2 dalam penyemak imbas, Nginx akan mengalihkan permintaan kepada https://example.com/page2 .

Jika boleh, lebih suka membuat pengalihan semula pada setiap domain dan bukannya HTTP global untuk pengalihan

Kesimpulannya

Sebaik sahaja anda mempunyai sijil SSL yang dipasang di tapak web anda, anda harus mengarahkan trafik HTTP ke

Di Nginx, cara pilihan untuk mengalihkan HTTP ke HTTPS adalah untuk membuat blok pelayan yang berasingan dan melakukan pengalihan 301.

nginx