NGINX adalah server web berkinerja tinggi dan server proxy terbalik yang terkenal karena kemampuannya menangani beban lalu lintas tinggi dan menyajikan konten statis secara efisien. Salah satu fitur canggihnya adalah kemampuan untuk mengalihkan URL, kemampuan penting untuk mengelola lalu lintas web, meningkatkan SEO, dan memastikan pengalaman pengguna yang lancar. Pengalihan URL di NGINX dapat digunakan untuk berbagai tujuan, seperti mengalihkan HTTP ke HTTPS, membuat alias URL, atau mengelola migrasi situs.
Panduan berikut akan menunjukkan cara mengarahkan ulang URL di NGINX menggunakan terminal baris perintah di Linux atau sistem mirip Unix. Dengan mengonfigurasi kemampuan pengalihan NGINX yang kuat dan fleksibel, Anda dapat mengelola dan mengontrol lalu lintas web secara efisien untuk memenuhi kebutuhan spesifik Anda.
Kembalikan URL Pengalihan di NGINX
NGINX menyediakan dua arahan utama untuk menyiapkan pengalihan URL: return
Dan rewrite
. Arahan ini sangat penting untuk mengarahkan lalu lintas web dari satu URL ke URL lainnya.
301 Pengalihan di NGINX
Pengalihan 301 penting untuk pengalihan permanen. Ini biasanya digunakan ketika situs web atau halaman web telah dipindahkan secara permanen ke URL baru. Untuk mengatur pengalihan 301 di NGINX, Anda menggunakan return
arahan dalam blok server Anda, menentukan kode status 301. Ini memastikan bahwa pengguna dan mesin pencari diarahkan ke URL baru.
Contoh Pengalihan 301
Pertimbangkan Anda perlu mengalihkan lalu lintas dari oldsite.com
ke newsite.com
. Konfigurasi NGINX akan terlihat seperti ini:
server {
listen 80;
server_name oldsite.com;
location / {
return 301 $scheme://www.newsite.com$request_uri;
}
}
Konfigurasi ini secara efisien mengalihkan semua permintaan masuk oldsite.com
ke www.newsite.com
, mempertahankan URI permintaan asli. Metode sederhana namun ampuh ini memastikan pengguna dan mesin pencari menemukan lokasi situs web baru Anda.
302 Pengalihan di NGINX
Berbeda dengan pengalihan permanen, pengalihan 302 digunakan untuk skenario pengalihan sementara. Misalnya, Anda mungkin mengalihkan pengguna untuk sementara selama pemeliharaan situs web atau saat halaman dipindahkan sementara.
Contoh Pengalihan 302
Sebagai ilustrasi, katakanlah Anda ingin mengalihkan lalu lintas dari temp.com
ke another-site.com
untuk sementara. Pengaturan NGINX adalah:
server {
listen 80;
server_name temp.com;
location / {
return 302 $scheme://www.another-site.com$request_uri;
}
}
Dalam konfigurasi ini, semua lalu lintas ke temp.com
untuk sementara dialihkan ke www.another-site.com
. Penggunaan kode status 302 menunjukkan bahwa pengalihan ini bersifat sementara, yang penting untuk menjaga integritas SEO selama perubahan jangka pendek.
Tulis ulang Directive Redirect URL di NGINX
Itu rewrite
arahan di NGINX adalah alat yang ampuh untuk menangani skenario pengalihan URL yang kompleks. Berbeda dengan yang lugas return
direktif, rewrite
memanfaatkan ekspresi reguler dan variabel yang lebih luas. Fleksibilitas ini memungkinkan kontrol yang tepat terhadap cara pengalihan URL, terutama dalam skenario ketika pengalihan sederhana tidak cukup.
Pengalihan Berdasarkan Ekstensi File
Mengarahkan Jenis File Tertentu
Persyaratan umum adalah mengarahkan ulang jenis file tertentu. Misalnya, mengarahkan ulang semua .jpg
permintaan gambar ke direktori baru:
server {
listen 80;
server_name www.example.com;
location ~* \.jpg$ {
rewrite ^/images/(.*)\.jpg$ /new-images/$1.jpg permanent;
}
}
Dalam konfigurasi ini, setiap permintaan ke a .jpg
berkas di /images/
direktori dialihkan ke /new-images/
. Ekspresi reguler \.(jpg)$
memastikan bahwa hanya URL yang diakhiri dengan .jpg
terpengaruh.
Pengalihan Dinamis Berdasarkan URI
Pengalihan dengan Manipulasi URI
Skenario umum lainnya melibatkan pengalihan URL secara dinamis berdasarkan komponen URI-nya. Pertimbangkan untuk mengalihkan pengguna berdasarkan kategori produk:
server {
listen 80;
server_name www.example.com;
location ~* ^/category/(.*)$ {
rewrite ^/category/(.*)$ /new-category/$1 permanent;
}
}
Penyiapan ini menangkap URL apa pun di bawah /category/
dan mengalihkannya ke URL yang sesuai di bawah /new-category/
, mempertahankan bagian terakhir URI.
Menangani Struktur URL Lama
Mengarahkan URL Lama ke Pola Baru
Situs web sering kali mengubah struktur URL-nya seiring waktu. Itu rewrite
direktif dapat menangani transisi seperti itu dengan lancar:
server {
listen 80;
server_name www.example.com;
location ~* ^/old-structure/(.*)$ {
rewrite ^/old-structure/(.*)/info$ /new-structure/$1/details permanent;
}
}
Contoh ini menunjukkan cara mengalihkan URL dari pola lama (/old-structure/[identifier]/info
) ke pola baru (/new-structure/[identifier]/details
).
Pengalihan Berbasis Geografis
Mengarahkan Pengguna berdasarkan Lokasi Geografis
NGINX juga dapat menangani pengalihan berdasarkan lokasi geografis, dengan memanfaatkan $geoip_country_code
variabel:
server {
listen 80;
server_name www.example.com;
if ($geoip_country_code = "US") {
rewrite ^/(.*)$ /us/$1 permanent;
}
}
Dalam konfigurasi ini, pengunjung dari Amerika Serikat diarahkan ke bagian situs web khusus AS. Pendekatan ini memerlukan modul GeoIP untuk diaktifkan di NGINX.
URL Pengalihan Penyeimbangan Beban di NGINX
NGINX unggul dalam mengelola lalu lintas jaringan secara efisien melalui kemampuan penyeimbangan beban dan pengalihannya. Penyeimbangan beban di NGINX melibatkan pendistribusian lalu lintas masuk ke beberapa server. Strategi ini mencegah server mana pun menjadi kelebihan beban, sehingga meningkatkan kinerja dan keandalan sistem secara keseluruhan.
Mengonfigurasi NGINX untuk Load Balancing
Pengaturan Penyeimbangan Beban
Penyeimbangan Beban Dasar
Berikut ini contoh cara mengkonfigurasi NGINX untuk penyeimbangan beban:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
Dalam konfigurasi ini, NGINX bertindak sebagai proksi terbalik dan mendistribusikan permintaan masuk secara merata ke salah satu dari tiga server backend yang ditentukan: backend1.example.com, backend2.example.com, dan backend3.example.com. Penyiapan ini sangat penting untuk situs web dengan lalu lintas tinggi, karena memastikan penanganan permintaan yang efisien, sehingga menjaga waktu respons yang cepat dan meminimalkan waktu henti server.
Penyeimbangan Beban Tingkat Lanjut dengan Pemeriksaan Kesehatan
Untuk meningkatkan keandalan, Anda dapat mengonfigurasi NGINX untuk melakukan pemeriksaan kesehatan pada server backend dan hanya mengirimkan lalu lintas ke server yang sehat:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
# Enable health checks
health_check;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
Dengan pengaturan ini, NGINX secara berkala memeriksa kesehatan server backend dan mengecualikan server apa pun yang tidak aktif dari kumpulan penyeimbangan beban. Hal ini memastikan bahwa lalu lintas hanya diarahkan ke server yang mampu menangani permintaan, sehingga meningkatkan keandalan secara keseluruhan.
Praktik Terbaik untuk Penyeimbangan Beban
Menerapkan Persistensi Sesi (Sesi Lengket)
Untuk aplikasi yang memerlukan persistensi sesi, Anda dapat menggunakan sesi melekat untuk memastikan bahwa pengguna secara konsisten diarahkan ke server backend yang sama:
http {
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
Dalam konfigurasi ini, ip_hash
arahan memastikan bahwa permintaan dari alamat IP klien yang sama selalu diarahkan ke server backend yang sama, menjaga konsistensi sesi.
Mengonfigurasi Penghentian SSL
Untuk komunikasi yang aman, praktik terbaiknya adalah menghentikan SSL di penyeimbang beban:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://backend;
}
}
}
Dalam pengaturan ini, NGINX menangani penghentian SSL, mendekripsi permintaan SSL yang masuk dan meneruskannya ke server backend sebagai permintaan HTTP biasa. Ini membongkar pemrosesan SSL dari server backend, sehingga meningkatkan kinerjanya.
Kesimpulan
Dalam panduan ini, kami telah menjelajahi kepraktisan penggunaan NGINX untuk pengalihan URL, penyeimbangan beban, dan banyak lagi. Kami membahas berbagai teknik, mulai dari menyiapkan pengalihan 301 dan 302 dasar hingga menerapkan aturan penulisan ulang yang rumit dan konfigurasi penyeimbangan beban yang efisien. Kekuatan NGINX terletak pada fleksibilitas dan kinerjanya, menjadikannya alat yang sangat berharga untuk mengelola situs web apa pun, baik skala kecil maupun besar. Saat Anda menerapkan konsep ini, teruslah bereksperimen dan optimalkan. NGINX adalah alat canggih dalam gudang administrasi web Anda, jadi gunakanlah untuk menjaga situs Anda berjalan lancar dan efisien.