Nginx diucapkan “engine x” adalah aplikasi open-source, HTTP berkinerja tinggi, dan server reverse proxy yang memberi daya pada beberapa situs besar di Internet.
Nginx dapat digunakan sebagai server web mandiri, atau di kombinasikan sebagai reverse proxy untuk Apache dan web server lainnya.
Jika Anda pengembang atau administrator sistem, keamanan pertukaran data menjadi poin pertama ketika berurusan dengan jaringan. Salah satu langkah penting dalam pengamanan adalah mengarahkan lalu lintas HTTP ke versi situs web (HTTPS).
Tidak seperti HTTP, di mana permintaan dan respons dikirim akan dikembalikan dalam format 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 disadap.
- Google Chrome dan semua browser populer lainnya akan menandai situs web Anda sebagai aman.
- HTTPS memungkinkan Anda untuk menggunakan protokol HTTP/2, yang secara signifikan meningkatkan kinerja situs.
- Google lebih prefer pada situs web yang memiliki HTTPS. Situs Anda akan peringkat lebih baik jika dilayani melalui HTTPS.
Metode yang disukai untuk redirect HTTP ke HTTPS di Nginx adalah mengkonfigurasi server block terpisah untuk setiap versi situs. Anda harus menghindari redirecting lalu lintas menggunakan if directive, karena dapat menyebabkan perilaku server yang tidak dapat diprediksi.
Redirect 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 linuxid.net www.linuxid.net; return 301 //www.linuxid.net$request_uri; }Mari kita uraikan baris kode demi baris:
- listen 80 – Blok server akan listen koneksi masuk pada port 80 untuk domain yang ditentukan.
- server_name linuxid.net www.linuxid.net – Menentukan nama untuk setiap domain server block. Pastikan Anda menggantinya dengan nama domain Anda.
- return 301 //www.linuxid.net$request_uri – Mengarahkan redirect ke versi situs HTTPS. Variabel $request_uri adalah URI permintaan asli lengkap termasuk argumen.
Biasanya, Anda juga ingin redirect versi situs HTTPS www ke non-www atau sebaliknya. Cara yang disarankan untuk melakukan redirect adalah dengan membuat block server terpisah untuk versi www dan non-www.
Misalnya, untuk redirect permintaan HTTPS www ke non-www, Anda akan menggunakan konfigurasi berikut:
server { listen 80; listen [::]:80; server_name linuxid.net www.linuxid.net; return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name www.linuxid.net; # . . . other code return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name linuxid.net; # . . . other code }
Redirect Semua Situs ke HTTPS
Jika semua situs web yang dihosting di server dikonfigurasikan untuk menggunakan HTTPS, dan Anda tidak ingin membuat server block HTTP terpisah untuk setiap situs, Anda dapat membuat satu server block HTTP untuk menangkap semua request HTTP. Block ini akan mengalihkan semua permintaan HTTP ke block 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 //$host$request_uri; }Mari kita menganalisis kode baris demi baris:
- listen 80 default_server – Tetapkan server block 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.
- server { listen 80; listen [::]:80; server_name linuxid.net www.linuxid.net; return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name www.linuxid.net; # . . . other code return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name linuxid.net; # . . . other code }0– Redirect lalu lintas ke blok server HTTPS yang sesuai dengan kode status 301 (Dipindahkan Secara Permanen). Variabel $host menampung nama domain dari request.
Misalnya, jika pengunjung membuka server { listen 80; listen [::]:80; server_name linuxid.net www.linuxid.net; return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name www.linuxid.net; # . . . other code return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name linuxid.net; # . . . other code }1 di browser, Nginx akan mengalihkan permintaan ke server { listen 80; listen [::]:80; server_name linuxid.net www.linuxid.net; return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name www.linuxid.net; # . . . other code return 301 //linuxid.net$request_uri; } server { listen 443 ssl http2; server_name linuxid.net; # . . . other code }2.
Disarankan untuk membuat pengaturan redirection berdasarkan per-domain daripada pengalihan HTTP ke HTTPS secara global. Pengaturan per-domain membuat Anda lebih fleksibel dan lebih aman jika suatu hari nanti ada kesalahan dalam pengaturan global.
Kesimpulan
Setelah Anda menginstal sertifikat SSL di situs web Anda, Anda harus mengarahkan lalu lintas dari HTTP ke HTTPS.
Di Nginx, cara efektif untuk redirect dari HTTP ke HTTPS adalah dengan membuat server blocks terpisah dan gunakan opsi perintah 301 redirect.
- LABEL
- Nginx
- Web Server
Share
Telegram
Berita sebelumyaCara Format USB Drives dan SD Cards di Linux
Berita berikutnyaKonfigurasi Replikasi MySQL Master-Slave di Debian 10
xsand
Related Post
Review Kumpulan Terminal Emulator Terbaik Untuk Linux
Mengenal Konfigurasi Nginx Error Log dan Access Log
Cara Install dan Konfigurasi Java di Raspberry Pi
Cara Install Arch Linux di Raspberry Pi 3
Perbandingan Web Server Populer Nginx vs Apache
Cara Membuat Sertifikat SSL Self-Signed
Cara Install dan Konfigurasi Hugo Site Generator di Ubuntu 18.04
Cara Mengubah Izin File di Linux Secara Rekursif
Cara Clone Git Branch Dari Remote Repository
Terbaru
Daftar Repository Lokal Ubuntu 22.04 Jammy Jellyfish
xsand
Setiap rilis Ubuntu memiliki nomor versi yang terdiri dari jumlah tahun dan bulan rilis. Misalnya, Rilis pertama Ubuntu 22.04 adalah April 2022. Nomor versi...
Cara Upgrade ke Ubuntu 22.04 dari Baris Perintah
Daftar Repository Lokal Indonesia Debian 11
Menghapus Kernel Module Linux dengan Perintah Rmmod
Tutorial Konfigurasi Nginx Server Blocks di Ubuntu 20.04
Tutorial Konfigurasi Apache Virtual Hosts di Ubuntu 20.04
Rekomendasi
Tutorial Konfigurasi Nginx Server Blocks di Ubuntu 20.04
xsand
Server block Nginx memungkinkan Anda untuk menjalankan lebih dari satu situs web pada satu mesin. Dengan Server Blocks, Anda dapat menentukan root dokumen situs...