Migrasi Apache ke Nginx di Webuzo Malah Panen Error 404? Ini Solusi Cepatnya

Migrasi Apache ke Nginx di Webuzo Malah Panen Error 404? Ini Solusi Cepatnya

Oleh Reggi, 29 Dec 2022

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:

bash
sudo 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:

bash
sudo 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:

nginx
location / { 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 EditorPerintah Simpan & Keluar
VimTekan Esc, ketik :wq! lalu tekan Enter
NanoTekan 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:

bash
service nginx restart

Opsi GUI (Dashboard Webuzo)

Jika malas membuka terminal lagi:

  1. Masuk ke dashboard panel Webuzo Anda.
  2. Buka menu Services.
  3. Cari service nginx.
  4. 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.


Sedang Ramai Dibaca