Cara Redirect URL di Nginx

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.

Joshua James
Ikuti aku
Postingan terbaru oleh Joshua James (Lihat semua)

Tinggalkan komentar