Pendahuluan
Nginx (diucapkan "Engine-X") adalah server web dan aplikasi proxy berbasis Linux. Nginx adalah alat yang ampuh untuk mengarahkan dan mengelola lalu lintas web. Ini dapat dengan mudah dikonfigurasi untuk mengalihkan lalu lintas web HTTP yang tidak terenkripsi ke server HTTPS terenkripsi.
Panduan ini akan menunjukkan cara mengarahkan HTTP ke HTTPS menggunakan Nginx.
Prasyarat
- Server Linux yang menjalankan Nginx
- Akun pengguna dengan sudo hak istimewa
- Login jarak jauh ke server web (opsional, hanya diperlukan jika Anda tidak bekerja secara langsung di server web Anda)
- Akses ke terminal/baris perintah (Ctrl-Alt-T atau Ctrl-Alt-F2)
Pengalihan HTTP ke HTTPS
Untuk menerapkan pengalihan HTTP ke HTTPS, Anda perlu mengedit file konfigurasi Nginx.
Biasanya, Anda dapat menemukan file di /etc/nginx/sites-available direktori. Jika tidak ditemukan, cari di sini:/etc/nginx/nginx.conf, /usr/local/nginx/conf , atau /usr/local/etc/nginx .
Setelah Anda menemukan file konfigurasi Nginx, buka di editor teks dengan perintah:
sudo nano /etc/nginx/sites-available/server.conf
Ganti lokasi dengan lokasi dan nama sebenarnya dari file konfigurasi Anda.
Setelah file konfigurasi terbuka untuk diedit, masukkan salah satu blok kode di bawah ini. Setelah Anda selesai mengedit, simpan file dan keluar. Kemudian, restart layanan Nginx dengan perintah berikut:
sudo service nginx restart
Nginx Redirect semua lalu lintas HTTP ke HTTPS
Buka file konfigurasi Nginx untuk diedit, lalu masukkan kode berikut:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
Berikut adalah rincian perintahnya:
Listen 80
:Ini menginstruksikan sistem untuk menangkap semua lalu lintas HTTP di Port 80Server_name _;
:Ini akan cocok dengan nama host apa punReturn 301
:Ini memberi tahu browser (dan mesin telusur) bahwa ini adalah pengalihan permanenhttps://$host$request_uri
:Ini adalah kode pendek untuk menentukan versi HTTPS dari apa pun yang diketik pengguna
Setelah mengedit, semua lalu lintas untuk server default HTTP dialihkan ke HTTPS.
Mengalihkan Situs Tertentu
Anda mungkin memiliki beberapa server, tetapi hanya beberapa dari mereka yang mungkin memerlukan HTTPS. Tentukan nama server di blok server untuk mengarahkan lalu lintas yang dipilih:
server {
listen 80 default_server;
server_name my_app.com;
return 301 https://my_app.com$request_uri;
}
Ganti nama my_app.com dengan nama server yang ingin Anda arahkan. Anda mungkin juga ingin menambahkan situs tambahan dengan menambahkan blok server lain. Cukup salin kodenya, dan ganti nama servernya.
Hanya Terima Koneksi SSL
Tambahkan kode ini untuk memastikan bahwa server hanya akan menerima koneksi SSL pada Port 443:
server {
listen 443 ssl default_server;
server_name my_app.com;
}
server {
listen 443 ssl;
server_name my_website.com;
}
Blok kode ini akan menyetel dua situs web, my_app.com dan situs_saya.com , untuk hanya menerima koneksi SSL. Anda dapat menambahkan situs tambahan dengan menggunakan blok server tambahan.
Pengalihan Halaman Nginx
Anda dapat menggunakan kode penulisan ulang untuk mengelola pengalihan 301 (permanen) atau 302 (sementara) dengan cepat:
Location /index.html {
rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;
}
Biasanya, lokasinya adalah index.html , tetapi Anda dapat menentukan jalur/pola apa pun.
Perhatikan bahwa rewrite
perintah hanya boleh digunakan dengan pengalihan 301 atau 302.
Cara Mengarahkan Domain Dengan Nginx
Ini berguna jika Anda telah mengubah ekstensi vanity (seperti .biz atau .net) ke alamat .com standar. Itu juga dapat digunakan untuk mengalihkan dari nama domain lama ke nama domain baru.
server {
listen 80;
listen 443 ssl;
server_name www.old_company.com;
return 301 $scheme://www.new_company.com$request_uri;
}
Untuk sebagian besar contoh, return
perintah lebih disukai daripada perintah penulisan ulang.
Mengalihkan dari situs web www ke situs web non-www
Proses ini mirip dengan pengalihan halaman standar:
server {
server_name www.new_company.com;
return 301 $scheme://new_company.com$request_uri;
}
Alasan untuk Mengarahkan Lalu Lintas
Ada beberapa alasan untuk mengalihkan lalu lintas HTTP ke HTTPS. Anda mungkin perlu:
- Paksakan koneksi terenkripsi yang lebih aman.
- Pertahankan halaman dengan peringkat SEO yang baik, tetapi kirimkan lalu lintasnya ke halaman baru.
- Beri tahu dan kirim lalu lintas untuk sementara ke halaman “sedang dalam pemeliharaan”.
- Mengirim lalu lintas secara permanen dari satu situs web ke situs web lainnya, yaitu setelah merger perusahaan.