Nginx Redirect HTTP ke HTTPS

Nginx Redirect Http Https

Nginx, diucapkan sebagai Engine x, adalah web berkinerja tinggi berbasis Linux open-source gratis dan server proxy terbalik yang bertanggung jawab untuk mengelola dan menangani beban lalu lintas situs web terbesar di internet. Nginx adalah alat pengalihan yang kuat yang dapat dikonfigurasi dengan mudah di sistem Anda untuk mengalihkan lalu lintas web HTTP yang kurang aman atau tidak terenkripsi ke server web HTTPS terenkripsi dan aman. Jika Anda seorang administrator sistem atau pengembang, maka Anda menggunakan server Nginx secara teratur.

Pada artikel ini, kami akan membahas cara mengarahkan lalu lintas web dari HTTP ke HTTPS aman di Nginx.



Respons dan permintaan dikembalikan dalam bentuk plaintext di HTTP, sedangkan HTTPS menggunakan SSL/TLS untuk mengenkripsi komunikasi antara sistem klien dan server. Oleh karena itu karena berbagai alasan, HTTPS digunakan melalui HTTP, yang tercantum di bawah ini:



  • Semua data antara client-server di kedua arah dienkripsi. Namun, siapa pun tidak dapat mengakses informasi sensitif jika disadap.
  • Saat Anda menggunakan HTTPS, Google Chrome dan browser lain akan menganggap domain situs web Anda aman.
  • Versi HTTPS meningkatkan kinerja situs web yang Anda tentukan menggunakan protokol HTTP/2.
  • Jika Anda melayani domain situs web Anda melalui HTTPS, maka peringkat situs web akan lebih baik di Google, karena mendukung semua situs web aman HTTPS.

Lebih disukai untuk mengarahkan lalu lintas HTTP ke HTTPS di Nginx di blok server terpisah untuk setiap versi situs. Disarankan juga untuk menghindari pengalihan lalu lintas menggunakan arah if yang dapat menyebabkan perilaku server yang tidak biasa.



Arahkan ulang semua lalu lintas dari HTTP ke HTTPS

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

server {
mendengarkan 80default_server;
nama server _;
kembali 301https: //$host$request_uri;
}

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

Listen 80 default_server – ini akan memberi sinyal pada sistem Anda yang menangkap semua lalu lintas HTTP di Port 80.
Server_name _ – ini adalah domain yang akan cocok dengan nama host apa pun.



Return 301 https://$host$request_uri – ini memberi tahu mesin pencari Anda yang mengarahkan ulang secara permanen. Ini menentukan bahwa variabel $host memegang nama domain.

Setelah Anda mengubah pengaturan konfigurasi, Anda perlu memuat ulang layanan Nginx di sistem Anda. Jadi, muat ulang layanan Nginx Anda dengan menggunakan perintah berikut:

$sudosystemctl muat ulang nginx

Arahkan ulang HTTP ke versi HTTPS untuk domain yang ditentukan di Nginx

Setelah menginstal sertifikat SSL di domain Anda, Anda akan memiliki dua opsi blok server untuk domain ini. Satu blok adalah untuk mendengarkan versi HTTP pada port 80, dan versi kedua adalah HTTPS pada port 443. Namun, untuk mengalihkan satu domain situs web dari HTTP ke HTTPS, Anda perlu membuka konfigurasi Nginx. Anda dapat menemukan file konfigurasi ini di direktori /etc/nginx/sites-available. Bagaimanapun, jika Anda tidak menemukan file ini, Anda dapat mencarinya dengan /etc/nginx/nginx.conf, /usr/local/nginx/conf atau /usr/local/etc/nginx, dan kemudian melakukan perubahan berikut dalam file ini:

server {
mendengarkan 80;
nama server nama-domain.com www.nama-domain.com;
kembali 301https://nama-domain.com$request_uri;
}

Mari kita pahami kode di atas baris demi baris.
Listen 80 – menggunakan port 80, server akan mendengarkan semua koneksi masuk yang ditentukan domain.

Server_name domain-name.com www.domain-name.com – ini menentukan nama domain. Jadi, ganti dengan nama domain situs web Anda yang ingin Anda redirect.

Kembalikan 301 https://domain-name.com$request_uri – ini memindahkan lalu lintas ke versi HTTPS situs. Variabel $request_uri digunakan untuk URI permintaan asli lengkap di mana argumen juga disertakan.

Dengan menggunakan metode berikut, Anda dapat mengarahkan lalu lintas ke versi www HTTPS ke versi situs non-www. Disarankan untuk membuat pengalihan di blok server terpisah untuk versi non-www dan www.

Mari kita jelaskan dengan sebuah contoh. Jika Anda ingin mengarahkan permintaan HTTPS www ke versi non-www, maka Anda harus mengikuti konfigurasi berikut:

server {
mendengarkan 80;
nama server nama-domain.com www.nama-domain.com;
kembali 301https://nama-domain.com$request_uri;
}
server {
mendengarkan 443 ssl http2;
nama server www.nama-domain.com;
# . . . kode lain
kembali 301https://nama-domain.com$request_uri;
}
server {
mendengarkan 443 ssl http2;
nama server nama-domain.com;

# . . . kode lain
}

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

Kesimpulan

Kami telah membahas cara mengarahkan lalu lintas dari versi HTTP ke HTTPS di server Nginx. Dengan mengubah pengaturan file konfigurasi Nginx, Anda dapat dengan mudah mengarahkan lalu lintas ke HTTPS baik untuk domain tertentu atau mengarahkan ulang semua. Metode ini, yang telah kami sebutkan di artikel ini, dapat membantu Anda membuat situs web Anda lebih aman dengan membuat perubahan apa pun dalam pengalaman pengguna.