Android

Arahkan http ke https dalam nginx

Cara Install ownCloud di Debian 9 menggunakan Nginx dan SSL Self Signed

Cara Install ownCloud di Debian 9 menggunakan Nginx dan SSL Self Signed

Daftar Isi:

Anonim

Dalam panduan ini, kami akan menjelaskan cara mengarahkan lalu lintas HTTP ke HTTPS di Nginx.

Nginx diucapkan "engine x" adalah HTTP gratis, sumber terbuka, berkinerja tinggi, dan server proxy terbalik yang bertanggung jawab untuk menangani beban beberapa situs terbesar di Internet.

Tidak seperti HTTP, di mana permintaan dan respons dikirim dan dikembalikan dalam plaintext, HTTPS menggunakan TLS / SSL untuk mengenkripsi komunikasi antara klien dan server.

Ada banyak manfaat menggunakan HTTPS melalui HTTP, seperti:

  • Semua data dienkripsi di kedua arah. Akibatnya, informasi sensitif tidak dapat dibaca jika dicegat. Google Chrome dan semua browser populer lainnya akan menandai situs web Anda sebagai aman. HTTPS memungkinkan Anda menggunakan protokol HTTP / 2, yang secara signifikan meningkatkan kinerja situs. Google mendukung situs web HTTPS. Situs Anda akan peringkat lebih baik jika dilayani melalui

Metode yang disukai untuk mengarahkan HTTP ke HTTPS di Nginx adalah mengkonfigurasi blok server terpisah untuk setiap versi situs. Anda harus menghindari mengarahkan lalu lintas menggunakan arahan if, karena dapat menyebabkan perilaku server yang tidak dapat diprediksi.

Arahkan HTTP ke HTTPS per Situs

Untuk mengalihkan satu situs web ke HTTPS, buka file 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 uraikan baris kode demi baris:

  • listen 80 - Blok server akan mendengarkan koneksi masuk pada port 80 untuk domain yang ditentukan. server_name linuxize.com www.linuxize.com - Menentukan nama domain blok server. Pastikan Anda menggantinya dengan nama domain Anda. return 301 - Redirect lalu lintas ke versi situs HTTPS. Variabel $request_uri adalah URI permintaan asli lengkap termasuk argumen.

Biasanya, Anda juga ingin mengarahkan versi situs HTTPS www ke non-www atau sebaliknya. Cara yang disarankan untuk melakukan pengalihan adalah membuat blok server terpisah untuk versi www dan non-www.

Misalnya, untuk mengarahkan kembali permintaan HTTPS www ke non-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 }

Alihkan Semua Situs ke HTTPS

Jika semua situs web yang dihosting di server dikonfigurasikan untuk menggunakan HTTPS, dan Anda tidak ingin membuat blok server HTTP terpisah untuk setiap situs, Anda dapat membuat satu blok server catch-all HTTP semua. Blok ini akan mengalihkan semua permintaan HTTP ke blok HTTPS yang sesuai.

Untuk membuat satu catch-all HTTP block yang akan mengarahkan pengunjung ke versi HTTPS situs, buka file 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 menganalisis kode baris demi baris:

  • listen 80 default_server - Tetapkan blok server ini sebagai blok default (tangkap semua) untuk semua domain yang tidak cocok. server_name _ - _ adalah nama domain tidak valid yang tidak pernah cocok dengan nama domain asli. return 301 - Redirect lalu lintas ke blok server HTTPS yang sesuai dengan kode status 301 (Dipindahkan Secara Permanen). Variabel $host menampung nama domain dari permintaan.

Misalnya, jika pengunjung membuka http://example.com/page2 di browser, Nginx akan mengarahkan permintaan ke https://example.com/page2 .

Jika memungkinkan, lebih suka membuat pengalihan berdasarkan per-domain daripada pengalihan HTTP ke HTTPS global.

Kesimpulan

Setelah Anda menginstal sertifikat SSL di situs web Anda, Anda harus mengarahkan kembali lalu lintas HTTP ke

Di Nginx, cara yang dipilih untuk mengarahkan HTTP ke HTTPS adalah dengan membuat blok server terpisah dan melakukan 301 redirect.

nginx