Panduan Migrasi Apache ke NGINX

calendar_today
schedule 3 min read

Panduan Migrasi Apache ke NGINX

Halo, teman-teman! Kalian pengguna Apache yang pengen migrasi ke NGINX? Tenang, gak usah bingung! Di sini, gue bakal kasih panduan migrasi Apache ke NGINX yang simpel dan mudah diikuti. NGINX itu keren banget, lho! Bisa nge-handle traffic tinggi dengan lebih efisien. Yuk, langsung aja kita mulai!

1. Kenapa Harus Migrasi ke NGINX?

Sebelum mulai migrasi, gue kasih tau dulu nih kenapa NGINX itu worth it:

  • Performance: NGINX lebih cepat dan bisa nge-handle banyak koneksi secara bersamaan.
  • Resource Usage: NGINX lebih hemat resource dibanding Apache.
  • Scalability: NGINX lebih mudah di-scale untuk kebutuhan yang besar.

2. Instalasi NGINX

Pertama-tama, pastiin dulu NGINX udah terinstall di server kalian. Kalau belum, install dulu dengan perintah berikut:

code
sudo apt update
sudo apt install nginx

Setelah itu, cek status NGINX:

code
sudo systemctl status nginx

Kalau udah running, berarti NGINX siap dipake!

3. Konfigurasi NGINX

NGINX punya file konfigurasi utama di /etc/nginx/nginx.conf. Tapi, biasanya kita bakal lebih sering ngutak-ngatik file konfigurasi di /etc/nginx/sites-available/.

Buat file konfigurasi baru untuk website kalian:

code
sudo nano /etc/nginx/sites-available/namadomain.com

Isi file konfigurasi dengan contoh berikut:

code
server {
    listen 80;
    server_name namadomain.com www.namadomain.com;

    root /var/www/namadomain.com;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Jangan lupa ganti namadomain.com dengan domain kalian dan pastikan path root-nya sesuai.

4. Aktifkan Konfigurasi

Setelah bikin file konfigurasi, aktifkan dengan cara:

code
sudo ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/

Terus, test konfigurasi NGINX:

code
sudo nginx -t

Kalau gak ada error, restart NGINX:

code
sudo systemctl restart nginx

5. Migrasi .htaccess ke NGINX

Nah, ini nih yang sering bikin pusing. Kalau di Apache, kita biasa pake .htaccess buat aturan rewrite dan lainnya. Di NGINX, gak ada .htaccess, jadi semua aturan harus dimasukin ke file konfigurasi.

Contoh, kalau di .htaccess kalian ada:

code
RewriteEngine On
RewriteRule ^blog/(.*)$ /blog.php?id=$1 [L]

Di NGINX, konversinya jadi:

code
location /blog/ {
    rewrite ^/blog/(.*)$ /blog.php?id=$1 last;
}

6. Aturan Redirect

Kalau di Apache, redirect biasanya pake Redirect atau RewriteRule. Di NGINX, kita bisa pake return atau rewrite.

Contoh redirect di Apache:

code
Redirect 301 /oldpage.html http://www.namadomain.com/newpage.html

Di NGINX:

code
location = /oldpage.html {
    return 301 http://www.namadomain.com/newpage.html;
}

7. SSL/TLS Configuration

Kalau website kalian pake SSL/TLS, jangan lupa konfigurasi di NGINX. Kalau udah punya sertifikat dari Apache, tinggal pake aja.

Contoh konfigurasi SSL di NGINX:

code
server {
    listen 443 ssl;
    server_name namadomain.com www.namadomain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;

    # ... konfigurasi lainnya ...
}

8. Testing dan Monitoring

Setelah semua konfigurasi selesai, jangan lupa test website kalian. Pastiin semua halaman bisa diakses dengan baik dan gak ada error. Kalau perlu, monitor log NGINX di /var/log/nginx/error.log buat cek kalo ada masalah.

9. Disable Apache

Kalau udah yakin semua berjalan lancar dengan NGINX, kalian bisa disable Apache:

code
sudo systemctl stop apache2
sudo systemctl disable apache2

Tapi, pastiin dulu NGINX udah running dengan baik ya!

Nah, gimana? Gak susah kan migrasi dari Apache ke NGINX? Dengan NGINX, website kalian bakal lebih cepat dan hemat resource. Selamat mencoba!

A

Written by Ariful

Full-stack engineer obsessed with web performance.