Panduan Linux

Konfigurasi NGINX untuk SPA (Single Page Application)

Halo, teman-teman! Kali ini kita bakal ngomongin tentang konfigurasi NGINX untuk SPA (Single Page Application). Buat yang belum tau, SPA itu tipe aplikasi web yang cuma punya satu halaman HTML, tapi isinya bisa berubah-ubah pake JavaScript. Contohnya tuh kayak React, Vue, atau Angular. Nah, NGINX adalah web server yang bisa kita pake buat nge-host SPA kita. Yuk, kita langsung aja ke konfigurasinya!

1. Instalasi NGINX

Pertama-tama, pastiin dulu NGINX udah terinstall di server kamu. Kalo belum, kamu bisa install pake perintah berikut:

sudo apt update
sudo apt install nginx

Setelah itu, pastiin NGINX udah jalan dengan perintah:

sudo systemctl status nginx

2. Buat Konfigurasi untuk SPA

Biasanya, file konfigurasi NGINX ada di /etc/nginx/sites-available/. Kita bisa bikin file baru dengan nama spa atau sesuai kebutuhan. Buka file tersebut dengan editor teks favorit kamu, misalnya nano:

sudo nano /etc/nginx/sites-available/spa

Lalu, masukkan konfigurasi berikut:

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

    root /var/www/spa;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

Penjelasan:

3. Aktifkan Konfigurasi

Setelah bikin konfigurasi, kita perlu aktifin dengan bikin symlink ke folder sites-enabled:

sudo ln -s /etc/nginx/sites-available/spa /etc/nginx/sites-enabled/

Terus, test konfigurasi NGINX biar nggak ada error:

sudo nginx -t

Kalo keluar pesan nginx: configuration file /etc/nginx/nginx.conf test is successful, berarti konfigurasi kamu bener. Terakhir, restart NGINX:

sudo systemctl restart nginx

4. Optimasi untuk SEO

Biar SPA kamu SEO friendly, ada beberapa hal yang perlu diperhatikan:

5. Contoh Konfigurasi dengan Prerender

Kalo kamu pake Prerender, konfigurasi NGINX-nya bakal kaya gini:

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

    root /var/www/spa;
    index index.html;

    location / {
        try_files $uri @prerender;
    }

    location @prerender {
        set $prerender 0;
        if ($http_user_agent ~* "googlebot|bingbot|yandex|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
            set $prerender 1;
        }
        if ($args ~ "_escaped_fragment_") {
            set $prerender 1;
        }
        if ($http_user_agent ~ "Prerender") {
            set $prerender 0;
        }
        if ($uri ~* "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)") {
            set $prerender 0;
        }

        if ($prerender = 1) {
            rewrite .* /$scheme://$host$request_uri? break;
            proxy_pass http://localhost:3000;
        }
        if ($prerender = 0) {
            rewrite .* /index.html break;
        }
    }
}

Penjelasan:

6. SSL/TLS

Jangan lupa buat pake HTTPS biar lebih aman dan SEO friendly. Kamu bisa dapetin sertifikat SSL gratis dari Let’s Encrypt pake Certbot. Caranya:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Ikuti aja instruksinya, dan Certbot bakal otomatis nge-setup SSL buat kamu.

Nah, itu dia konfigurasi NGINX buat SPA. Semoga bermanfaat, ya! Kalo ada pertanyaan, tinggalin aja di komentar. Happy coding!

#Nginx #Tutorial