Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Linux Server Virtual

Menyiapkan Redirect dengan Nginx di VPS: Panduan Konfigurasi Lengkap

Pengalihan adalah komponen fundamental dari setiap infrastruktur web yang dikelola dengan baik. Baik Anda melakukan restrukturisasi situs web, bermigrasi ke domain baru, atau sementara merutekan lalu lintas selama pemeliharaan, pengalihan yang dikonfigurasi dengan benar melindungi peringkat SEO Anda, mempertahankan ekuitas tautan, dan memastikan pengunjung selalu mendarat di halaman yang tepat. Nginx — salah satu server web paling kuat dan paling banyak digunakan di dunia — membuat implementasi pengalihan menjadi fleksibel dan efisien.

Panduan komprehensif ini memandu Anda melalui semua yang perlu Anda ketahui tentang mengonfigurasi pengalihan HTTP menggunakan Nginx di lingkungan VPS Hosting, dari memahami jenis pengalihan hingga menguji dan memverifikasi pengaturan Anda dalam produksi.

1. Memahami HTTP Redirects

Sebelum menyentuh file konfigurasi apa pun, penting untuk memahami apa yang sebenarnya dilakukan redirect dan mengapa memilih jenis yang benar penting — terutama untuk SEO.

HTTP redirect adalah respons server yang menginstruksikan klien (biasanya browser web atau crawler) untuk menavigasi ke URL yang berbeda dari yang awalnya diminta. Server mengkomunikasikan instruksi ini menggunakan 3xx HTTP status code, dan kode spesifik yang Anda pilih memiliki implikasi signifikan untuk pengalaman pengguna dan perilaku mesin pencari.

Jenis Redirect Paling Umum

Jenis RedirectStatus CodeUse CaseMeneruskan Link Equity?
Permanent Redirect301Resource telah dipindahkan secara permanen✅ Ya
Temporary Redirect302Resource tidak tersedia sementara❌ Tidak
Temporary Redirect (Method-Safe)307Perpindahan sementara, mempertahankan HTTP method❌ Tidak
Permanent Redirect (Method-Safe)308Perpindahan permanen, mempertahankan HTTP method✅ Ya

301 Permanent Redirect

301 redirect adalah jenis redirect yang paling kritis untuk SEO. Ini menandakan kepada mesin pencari bahwa resource telah dipindahkan secara permanen ke URL baru, mentransfer link equity yang terakumulasi dari halaman asli (juga disebut "link juice") ke tujuan. Gunakan ini saat secara permanen mengganti nama URL, mengkonsolidasikan konten duplikat, atau bermigrasi ke domain baru.

302 Temporary Redirect

302 redirect memberitahu browser dan crawler bahwa perpindahan bersifat sementara dan URL asli akan dipulihkan pada akhirnya. Karena mesin pencari menginterpretasikan ini sebagai transien, mereka tidak mentransfer link equity ke URL tujuan. Gunakan ini untuk A/B testing, halaman pemeliharaan sementara, atau redirect promosi jangka pendek.

307 Temporary Redirect

307 redirect berperilaku serupa dengan 302 tetapi dengan satu perbedaan kritis: secara eksplisit mempertahankan HTTP request method asli. Jika klien mengirim POST request ke URL yang mengembalikan 307, klien harus mengulangi POST ke URL baru daripada default ke GET. Ini penting untuk API endpoints dan form submissions.

308 Permanent Redirect

308 redirect adalah rekan permanen dari 307 — ini menandakan perpindahan permanen sambil juga mempertahankan HTTP request method. Ini kurang umum digunakan daripada 301 tetapi berharga di lingkungan yang berat API.

2. Prasyarat: Mengakses VPS Anda melalui SSH

Untuk mengonfigurasi pengalihan Nginx, Anda memerlukan akses baris perintah ke server Anda. Jika Anda menjalankan lingkungan VPS Hosting berbasis Linux, ini berarti terhubung melalui SSH.

Langkah 1: Buka Terminal Anda dan Hubungkan

Di Linux atau macOS, buka terminal Anda. Di Windows, gunakan klien seperti PuTTY atau Windows Terminal bawaan dengan dukungan OpenSSH.

ssh username@your_server_ip

Ganti username dengan pengguna sistem aktual Anda (misalnya, root atau pengguna yang diaktifkan sudo) dan your_server_ip dengan alamat IP publik VPS Anda.

Contoh:

ssh admin@203.0.113.45

Setelah terhubung, konfirmkan bahwa Nginx terinstal dan berjalan:

sudo systemctl status nginx

Anda harus melihat output yang menunjukkan layanan active (running). Jika Nginx belum terinstal, Anda dapat menginstalnya dengan:

# On Ubuntu/Debian
sudo apt update && sudo apt install nginx -y

# On CentOS/RHEL/AlmaLinux
sudo dnf install nginx -y

3. Menemukan dan Memahami File Konfigurasi Nginx

Nginx menggunakan struktur konfigurasi hierarki. Memahami di mana file berada sangat penting sebelum melakukan perubahan apa pun.

Path Konfigurasi Default

PathTujuan
/etc/nginx/nginx.confFile konfigurasi Nginx utama
/etc/nginx/sites-available/Konfigurasi virtual host yang tersedia
/etc/nginx/sites-enabled/Konfigurasi aktif yang di-symlink
/etc/nginx/conf.d/File konfigurasi tambahan (gaya CentOS/RHEL)

Pada sistem Ubuntu/Debian, pendekatan yang direkomendasikan adalah membuat file konfigurasi individual di /etc/nginx/sites-available/ dan kemudian mengaktifkannya dengan membuat symbolic link di /etc/nginx/sites-enabled/.

Pada sistem CentOS/RHEL/AlmaLinux, konfigurasi biasanya berada di /etc/nginx/conf.d/.

Membuka File Konfigurasi

Untuk mengedit konfigurasi untuk domain tertentu:

sudo nano /etc/nginx/sites-available/example.com

Jika file belum ada, perintah ini akan membuatnya. Anda juga dapat menggunakan vim atau editor teks lainnya yang Anda sukai.

4. Mengonfigurasi Pengalihan di Nginx

Nginx menangani pengalihan terutama melalui dua direktif: return dan rewrite. Direktif return lebih sederhana, lebih cepat, dan direkomendasikan untuk sebagian besar skenario pengalihan. Direktif rewrite menawarkan lebih banyak kekuatan untuk pengalihan berbasis pola yang kompleks.

Metode 1: Menggunakan Direktif return (Direkomendasikan)

Direktif return menghentikan pemrosesan dan segera mengembalikan kode status HTTP dan URL yang ditentukan kepada klien. Ini adalah pendekatan paling efisien untuk pengalihan langsung.

Menyiapkan Pengalihan Permanen 301 (URL Tunggal)

server {
    listen 80;
    server_name example.com www.example.com;

    location /old-page {
        return 301 https://example.com/new-page;
    }
}

Dalam konfigurasi ini, permintaan apa pun ke http://example.com/old-page akan dialihkan secara permanen ke https://example.com/new-page. Mesin pencari akan memperbarui indeks mereka untuk mencerminkan URL baru dan mentransfer ekuitas tautan sesuai dengan itu.

Menyiapkan Pengalihan Sementara 302

server {
    listen 80;
    server_name example.com;

    # Temporary redirect during maintenance
    location /promo-page {
        return 302 https://example.com/temporary-landing;
    }
}

Konfigurasi ini secara sementara mengalihkan pengunjung dari /promo-page ke /temporary-landing tanpa mempengaruhi sinyal SEO pada URL asli.

Mengalihkan Seluruh Domain (Non-WWW ke WWW)

Kasus penggunaan yang sangat umum adalah memberlakukan domain kanonik — misalnya, mengalihkan semua lalu lintas http://example.com ke https://www.example.com:

server {
    listen 80;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;

    # SSL configuration here
    # ...
}

Variabel $request_uri mempertahankan jalur asli dan string kueri, jadi http://example.com/blog/post-1?ref=newsletter dengan benar dialihkan ke https://www.example.com/blog/post-1?ref=newsletter.

Mengalihkan HTTP ke HTTPS (Penegakan SSL)

Memberlakukan HTTPS adalah praktik terbaik keamanan dan sinyal peringkat Google yang terkonfirmasi. Setelah Anda memiliki Sertifikat SSL yang dipasang di server Anda, konfigurasikan pengalihan sebagai berikut:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # Your site configuration continues here
    root /var/www/example.com/html;
    index index.html index.php;
}

Konfigurasi ini menangkap semua lalu lintas HTTP pada port 80 dan mengeluarkan pengalihan 301 ke setara HTTPS, memastikan semua pengunjung dan crawler menggunakan versi aman situs Anda.

Mengalihkan Seluruh Domain Lama ke Domain Baru

Saat bermigrasi situs web Anda ke domain yang sepenuhnya baru, gunakan pola berikut:

server {
    listen 80;
    listen 443 ssl;
    server_name old-domain.com www.old-domain.com;

    ssl_certificate /etc/letsencrypt/live/old-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/old-domain.com/privkey.pem;

    return 301 https://new-domain.com$request_uri;
}

Ini mempertahankan jalur URL lengkap selama migrasi domain, yang penting untuk mempertahankan peringkat SEO Anda. Jika Anda perlu mendaftarkan domain baru untuk proyek Anda, AlexHost menawarkan layanan Pendaftaran Domain yang terjangkau.

Metode 2: Menggunakan Direktif rewrite (Pengalihan Berbasis Pola)

Direktif rewrite menggunakan ekspresi reguler untuk mencocokkan dan mengubah URL. Ini lebih kuat tetapi juga lebih intensif sumber daya daripada return. Gunakan ketika Anda perlu mengalihkan beberapa pola URL dengan satu aturan.

Sintaks Dasar rewrite

rewrite regex replacement [flag];

Bendera:

    last — Menghentikan pemrosesan direktif rewrite saat ini dan memulai pencarian lokasi baru
    break — Menghentikan pemrosesan direktif rewrite di blok saat ini
    redirect — Mengembalikan pengalihan sementara 302
    permanent — Mengembalikan pengalihan permanen 301
    
    Mengalihkan URL dengan Pola
    Misalkan Anda merestrukturisasi blog Anda dan perlu mengalihkan semua URL dari /blog/YYYY/MM/post-slug ke /articles/post-slug:
    server {
        listen 80;
        server_name example.com;
    
        rewrite ^/blog/[0-9]{4}/[0-9]{2}/(.*)$ /articles/$1 permanent;
    }
    Aturan tunggal ini menangani seluruh restrukturisasi URL blog, menangkap slug posting dan memasukkannya ke dalam pola URL baru.
    Mengalihkan Beberapa URL Spesifik
    Untuk sejumlah kecil perubahan URL spesifik, menggunakan beberapa direktif return di blok location terpisah lebih bersih dan lebih berkinerja:
    server {
        listen 80;
        server_name example.com;
    
        location = /about-us {
            return 301 /about;
        }
    
        location = /services/web-design {
            return 301 /services/web-development;
        }
    
        location = /contact-form {
            return 301 /contact;
        }
    }
    Pengubah = dalam location melakukan pencocokan yang tepat, yang merupakan jenis pencocokan tercepat di Nginx.
    Metode 3: Mengalihkan Berdasarkan String Kueri
    Nginx tidak secara native mencocokkan string kueri di blok location, tetapi Anda dapat menggunakan variabel $arg_ atau direktif if untuk pengalihan berbasis string kueri:
    server {
        listen 80;
        server_name example.com;
    
        location /page {
            if ($arg_id = "123") {
                return 301 /new-page-123;
            }
            if ($arg_id = "456") {
                return 301 /new-page-456;
            }
        }
    }
    > Catatan: Meskipun direktif if berfungsi untuk kasus sederhana, mereka dapat menyebabkan perilaku tidak terduga dalam konfigurasi kompleks. Komunitas Nginx sering merujuk pada ini sebagai masalah “if is evil”. Gunakan dengan hati-hati dan uji secara menyeluruh.
    5. Skenario Pengalihan Lanjutan
    Mengalihkan Subdirektori ke Domain Lain
    server {
        listen 80;
        server_name example.com;
    
        location /shop/ {
            return 301 https://shop.example.com$request_uri;
        }
    }
    Menghapus Garis Miring Akhir
    Garis miring akhir yang tidak konsisten dapat membuat masalah konten duplikat. Untuk mengkanonikalisasi URL dengan menghapus garis miring akhir:
    server {
        listen 80;
        server_name example.com;
    
        rewrite ^/(.*)/$ /$1 permanent;
    }
    Menambahkan Garis Miring Akhir ke URL Direktori
    Sebaliknya, jika CMS atau aplikasi Anda memerlukan garis miring akhir:
    server {
        listen 80;
        server_name example.com;
    
        location ~ ^(/[^.]*[^/])$ {
            return 301 $1/;
        }
    }
    Pengalihan Berbasis Geo Menggunakan GeoIP
    Untuk situs web yang melayani beberapa wilayah, Anda dapat mengalihkan pengguna berdasarkan lokasi geografis mereka menggunakan ngx_http_geoip_module:
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    
    server {
        listen 80;
        server_name example.com;
    
        if ($geoip_country_code = "DE") {
            return 302 https://de.example.com$request_uri;
        }
    
        if ($geoip_country_code = "FR") {
            return 302 https://fr.example.com$request_uri;
        }
    }
    6. Menguji Konfigurasi Nginx Anda
    Jangan pernah menerapkan perubahan ke server produksi tanpa menguji terlebih dahulu. Kesalahan sintaks dalam konfigurasi Nginx Anda dapat membuat seluruh situs web Anda offline.
    Langkah 1: Validasi Sintaks Konfigurasi
    sudo nginx -t
    Output yang diharapkan untuk konfigurasi yang valid:
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    Jika Anda melihat kesalahan, Nginx akan melaporkan file spesifik dan nomor baris tempat masalah terdeteksi, membuat debugging menjadi mudah.
    Langkah 2: Muat Ulang Nginx untuk Menerapkan Perubahan
    Setelah tes konfigurasi lulus, muat ulang Nginx dengan lancar (tanpa menghentikan koneksi aktif):
    sudo systemctl reload nginx
    Atau, untuk restart penuh (yang secara singkat mengganggu koneksi aktif):
    sudo systemctl restart nginx
    Untuk sebagian besar perubahan pengalihan, reload sudah cukup dan lebih disukai.
    7. Memverifikasi Bahwa Pengalihan Anda Berfungsi dengan Benar
    Setelah menerapkan konfigurasi Anda, verifikasi bahwa pengalihan berperilaku persis seperti yang dimaksudkan sebelum menganggap tugas selesai.
    Metode 1: Pengujian Browser
    Buka browser Anda dan navigasikan ke URL lama. Amati apakah Anda dialihkan dengan benar ke tujuan baru. Untuk detail lebih lanjut, buka Developer Tools (F12), navigasikan ke tab Network, dan muat ulang halaman. Anda akan melihat rantai pengalihan lengkap, termasuk kode status yang dikembalikan di setiap langkah.
    Metode 2: Menggunakan curl dari Baris Perintah
    Perintah curl adalah cara paling andal untuk menguji pengalihan tanpa cache browser yang mengganggu:
    curl -I http://example.com/old-page
    Bendera -I hanya mengambil header respons HTTP. Cari header Location dan kode status dalam respons:
    HTTP/1.1 301 Moved Permanently
    Server: nginx/1.24.0
    Date: Mon, 01 Jan 2024 12:00:00 GMT
    Content-Type: text/html
    Location: https://example.com/new-page
    Connection: keep-alive
    Untuk mengikuti seluruh rantai pengalihan secara otomatis:
    curl -IL http://example.com/old-page
    Bendera -L menginstruksikan curl untuk mengikuti pengalihan, dan dikombinasikan dengan -I, ini menampilkan header di setiap langkah rantai.
    Metode 3: Alat Pemeriksa Pengalihan Online
    Beberapa alat online gratis dapat memvisualisasikan rantai pengalihan Anda dan mengidentifikasi masalah seperti loop pengalihan atau lompatan pengalihan yang berlebihan:
    
    Redirect Checker (redirect-checker.org)
    httpstatus.io
    Screaming Frog SEO Spider (aplikasi desktop, gratis hingga 500 URL)
    
    Memeriksa Loop Pengalihan
    Loop pengalihan terjadi ketika URL A dialihkan ke URL B, yang dialihkan kembali ke URL A (atau melalui rantai yang lebih panjang yang akhirnya kembali). Ini menyebabkan browser menampilkan kesalahan seperti *"ERR_TOO_MANY_REDIRECTS"*.
    Untuk mendeteksi loop dengan curl:
    curl -IL --max-redirs 10 http://example.com/old-page
    Jika curl mencapai batas pengalihan maksimum, Anda memiliki loop. Tinjau konfigurasi Anda dengan hati-hati untuk memastikan tidak ada jalur pengalihan melingkar yang ada.
    8. Kesalahan Redirect Umum dan Cara Menghindarinya
    Kesalahan 1: Menggunakan 302 Padahal Anda Maksud 301
    Ini adalah kesalahan SEO paling umum dengan redirect. Jika perubahan URL bersifat permanen, selalu gunakan 301. Menggunakan 302 secara tidak sengaja berarti mesin pencari tidak akan mentransfer link equity dan akan terus mengindeks URL lama.
    Kesalahan 2: Redirect Chains
    Hindari chaining redirect yang tidak perlu (misalnya, A → B → C → D). Setiap hop tambahan menambah latency dan mengurangi nilai SEO yang dilewatkan melalui chain. Audit redirect Anda secara teratur dan perbarui agar menunjuk langsung ke tujuan akhir.
    Kesalahan 3: Tidak Menyimpan Query Strings
    Saat melakukan redirect seluruh domain atau direktori, selalu sertakan $request_uri atau $query_string dalam target redirect untuk menghindari penghapusan parameter URL penting.
    Salah:
    return 301 https://new-domain.com;
    Benar:
    return 301 https://new-domain.com$request_uri;
    Kesalahan 4: Lupa Menangani HTTP dan HTTPS
    Jika situs Anda melayani HTTP dan HTTPS, pastikan aturan redirect Anda memperhitungkan kedua protokol, atau Anda mungkin berakhir dengan perilaku yang tidak konsisten.
    Kesalahan 5: Tidak Menguji Setelah Perubahan
    Selalu jalankan sudo nginx -t sebelum memuat ulang, dan selalu verifikasi redirect dengan curl setelah menerapkan perubahan. Beberapa detik pengujian dapat mencegah berjam-jam troubleshooting.
    9. Pengalihan Nginx vs. Pengalihan .htaccess
    Jika Anda bermigrasi dari lingkungan hosting berbasis Apache ke Nginx di VPS, Anda mungkin terbiasa mengelola pengalihan melalui file .htaccess. Penting untuk memahami bahwa Nginx tidak mendukung file .htaccess. Semua logika pengalihan harus ditempatkan langsung di file konfigurasi blok server Nginx.
    Ini sebenarnya merupakan keuntungan: Nginx tidak perlu membaca file .htaccess pada setiap permintaan, yang berkontribusi pada kinerjanya yang superior dibandingkan Apache dalam banyak skenario.
    Jika Anda lebih suka pengalaman panel kontrol yang dikelola untuk VPS Anda, AlexHost menawarkan VPS dengan cPanel dan berbagai Panel Kontrol VPS yang menyediakan antarmuka grafis untuk mengelola pengalihan dan konfigurasi server lainnya tanpa mengedit file konfigurasi secara langsung.
    10. Praktik Terbaik SEO untuk Nginx Redirects
    Redirect yang dikonfigurasi dengan benar adalah komponen penting dari SEO teknis. Berikut adalah prinsip-prinsip utama yang harus diikuti:
    Gunakan 301 Redirects untuk Perubahan Permanen
    Setiap kali Anda secara permanen mengubah URL — baik mengganti nama halaman, merestruktur arsitektur situs, atau melakukan migrasi domain — gunakan 301 redirect. Ini memastikan Google dan mesin pencari lainnya memperbarui indeks mereka dan mentransfer kekuatan peringkat URL lama ke yang baru.
    Minimalkan Redirect Hops
    Crawler Google mengikuti rantai redirect, tetapi setiap hop mengonsumsi crawl budget dan sedikit mengurangi PageRank. Jaga rantai redirect Anda sesingkat mungkin — idealnya satu hop dari URL lama ke tujuan akhir.
    Perbarui Link Internal
    Redirect adalah jaring pengaman, bukan pengganti untuk internal linking yang bersih. Setelah menerapkan redirect, perbarui link internal Anda untuk menunjuk langsung ke URL baru. Ini mengurangi beban server dan memastikan crawler menghabiskan budget mereka untuk konten daripada mengikuti redirect.
    Kirimkan Sitemap yang Diperbarui
    Setelah perubahan URL yang signifikan, perbarui XML sitemap Anda untuk mencerminkan URL baru dan kirimkan kembali melalui Google Search Console. Ini mempercepat proses pengindeksan ulang.
    Pantau dengan Google Search Console
    Setelah menerapkan redirect, pantau Google Search Console untuk kesalahan crawl, masalah coverage, dan penurunan yang tidak terduga dalam impressions atau clicks. Masalah redirect sering muncul dalam beberapa hari setelah implementasi.
    Kesimpulan
    Menguasai konfigurasi redirect Nginx adalah keterampilan penting bagi setiap administrator sistem atau pemilik website yang menjalankan VPS. Baik Anda memberlakukan HTTPS, mengkonsolidasikan URL duplikat, bermigrasi ke domain baru, atau merestrukturisasi arsitektur situs Anda, Nginx menyediakan alat untuk menangani setiap skenario dengan efisien dan andal.
    Poin-poin kunci dari panduan ini:
    
    Pilih jenis redirect yang tepat: 301 untuk perpindahan permanen (penting untuk SEO), 302/307 untuk perpindahan sementara
    Gunakan direktif return untuk redirect sederhana — lebih cepat dan lebih bersih daripada rewrite
  • Gunakan direktif rewrite untuk transformasi URL yang kompleks berbasis pola
  • Selalu uji dengan sudo nginx -t sebelum memuat ulang, dan verifikasi dengan curl -IL sesudahnya
  • Pertahankan query string menggunakan $request_uri saat mengarahkan ulang seluruh domain atau direktori
  • Hindari rantai redirect dengan mengarahkan redirect langsung ke tujuan akhir
  • Jika Anda mencari lingkungan yang andal dan berkinerja tinggi untuk menjalankan server Nginx Anda, jelajahi paket VPS Hosting AlexHost — dirancang untuk kecepatan, keamanan, dan akses root penuh sehingga Anda memiliki kontrol lengkap atas konfigurasi server Anda.