Niat hati ingin mendongkrak performa server dengan migrasi dari Apache ke Nginx di panel Webuzo, tapi yang didapat justru mimpi buruk sysadmin: semua custom permalink mendadak rontok. Homepage mungkin masih aman terbuka, tapi begitu klik link artikel atau slug custom, layar browser langsung menyambut dengan pesan legendaris: 404 Not Found (The requested URL was not found on this server).
Kepanikan semacam ini sering terjadi saat transisi stack server. Masalahnya bukan karena instalasi VPS rusak atau database korup, melainkan murni urusan routing yang belum klop.
Kenapa Nginx Mendadak "Amnesia" Soal URL Website?
Saat masih mengandalkan Apache, file konfigurasi rewrite rule biasanya ditangani otomatis oleh sistem direktori. Begitu Anda beralih ke Nginx murni di Webuzo, web server ini tidak serta-merta membaca konfigurasi lama tersebut.
Nginx butuh instruksi eksplisit untuk memproses request URL. Tanpa konfigurasi yang tepat, Nginx mengira slug custom yang Anda buka adalah sebuah folder fisik nyata di dalam server. Ketika folder itu tidak ada di storage, Nginx langsung melempar kode keramat 404.
Untuk membereskannya, kita hanya butuh menyuntikkan satu blok directive pada file konfigurasi global Webuzo.
Eksekusi Fix Permalink: Edit File Common Nginx
Langkah perbaikan ini membutuhkan akses langsung ke jeroan server via terminal (bisa lewat SSH, PuTTY, atau SFTP). Target kita adalah satu file bernama common.
1. Buka File Konfigurasi
Akses path target yang berada di:
text/usr/local/apps/nginx/etc/conf.d/common
Gunakan text editor favorit Anda di terminal. Jangan lupa sertakan akses sudo jika belum masuk sebagai root:
Jika menggunakan Vim:
bashsudo vim /usr/local/apps/nginx/etc/conf.d/common
(Tekan tombol i pada keyboard untuk masuk ke Insert mode agar bisa mengetik).
Jika menggunakan Nano:
bashsudo nano /usr/local/apps/nginx/etc/conf.d/common
2. Tambahkan Directive Rewrite Rule
Scroll langsung ke baris paling bawah. Ingat, aturan mainnya adalah menambahkan di akhir file, bukan mengotak-atik atau menimpa parameter konfigurasi yang sudah eksis sebelumnya.
Paste baris konfigurasi berikut:
nginxlocation / { try_files $uri $uri/ /index.php?q=$request_uri; }
Satu blok konfigurasi ini menginstruksikan Nginx untuk mengecek file ($uri) atau direktori ($uri/) yang diminta. Jika keduanya tidak ditemukan secara fisik, request akan langsung dilempar ke index.php beserta query slug aslinya.
3. Simpan Perubahan File
Setelah kode terpasang di baris paling bawah, simpan pekerjaan Anda:
| Text Editor | Perintah Simpan & Keluar |
|---|---|
| Vim | Tekan Esc, ketik :wq! lalu tekan Enter |
| Nano | Tekan Ctrl + X, ketik y, lalu tekan Enter |
Tahap Akhir: Reload Service Nginx
Perubahan konfigurasi server tidak akan berefek apa pun sebelum service dimuat ulang. Anda punya dua opsi mudah untuk mengeksekusinya:
Opsi CLI (Terminal)
Jalankan perintah restart service Nginx secara langsung:
bashservice nginx restart
Opsi GUI (Dashboard Webuzo)
Jika malas membuka terminal lagi:
- Masuk ke dashboard panel Webuzo Anda.
- Buka menu Services.
- Cari service nginx.
- Klik pada tombol icon reload/refresh.
Selesai. Bersihkan cache browser dan coba akses kembali URL custom atau slug website Anda. Halaman yang tadinya 404 sekarang sudah bisa diakses normal dengan performa Nginx yang berjalan semestinya.
