Panduan Linux

Cara Mengatur CORS di NGINX untuk Aplikasi Modern

Hai, teman-teman developer! Pernah nggak sih kalian ngalamin masalah CORS (Cross-Origin Resource Sharing) pas lagi ngembangin aplikasi web modern? Nah, kalo iya, kalian nggak sendirian. CORS itu emang sering bikin pusing, tapi tenang aja, kita bisa atur CORS di NGINX dengan gampang. Yuk, simak caranya!

Apa Itu CORS?

Sebelum kita mulai, mungkin ada yang masih bingung, apa sih CORS itu? CORS itu mekanisme yang memungkinkan server web untuk mengizinkan atau menolak permintaan dari domain yang berbeda. Jadi, kalo aplikasi web kita mau ngakses resource dari server yang beda domain, CORS ini yang ngatur.

Kenapa Harus Atur CORS di NGINX?

Kalo kita nggak ngatur CORS, browser bakal ngeblok permintaan kita karena alasan keamanan. Nah, dengan ngatur CORS di NGINX, kita bisa ngasih izin ke domain tertentu buat ngakses resource kita. Ini penting banget buat aplikasi modern yang sering pake API dari berbagai sumber.

Langkah-Langkah Mengatur CORS di NGINX

Oke, langsung aja kita bahas gimana caranya ngatur CORS di NGINX. Berikut langkah-langkahnya:

  1. Buka File Konfigurasi NGINX

    Pertama, kita perlu buka file konfigurasi NGINX. Biasanya file ini ada di /etc/nginx/nginx.conf atau /etc/nginx/sites-available/default. Tapi, kalo kalian pake konfigurasi khusus, cari aja file yang sesuai.

    sudo nano /etc/nginx/sites-available/default
    
  2. Tambahkan Konfigurasi CORS

    Di dalam blok server atau location, tambahkan konfigurasi berikut:

    location / {
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain; charset=utf-8';
            add_header 'Content-Length' 0;
            return 204;
        }
        if ($request_method = 'POST') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
        if ($request_method = 'GET') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
    }
    

    Kode di atas bakal ngizinkan semua domain (*) buat ngakses resource kita. Kalo kalian mau ngizinkan domain tertentu aja, ganti * dengan domain yang diinginkan, misalnya 'https://example.com'.

  3. Simpan dan Restart NGINX

    Setelah nambahin konfigurasi, simpan file dan restart NGINX biar perubahan berlaku.

    sudo systemctl restart nginx
    

Penjelasan Konfigurasi CORS

Mungkin ada yang masih bingung sama konfigurasi di atas. Yuk, kita bahas satu per satu:

Tips Tambahan

Nah, gampang kan ngatur CORS di NGINX? Dengan ngikutin langkah-langkah di atas, aplikasi web kalian bakal bisa ngakses resource dari berbagai domain tanpa masalah. Selamat mencoba!

#Nginx #Tutorial