Cara Setting Nginx dengan banyak aplikasi node js

Saat memiliki banyak aplikasi node js dalam satu server, dan kita ingin agar aplikasi tersebut dapat di akses tanpa menggunakan port, maka salah satu cara yang dapat digunakan adalah menggunakan proxy dengan nginx. (dibaca engine x yah bukan ngiiing :D)

contoh sederhana setting nginx  bisa dilihat seperti berikut:

server 
{ 
     listen 80; 
     listen [::]:80; 
     server_name contoh1.com www.contoh1.com; 

     location / 
     { 
        proxy_pass http://127.0.0.1:3000; 
     } 
}

Setting nginx tersebut menunjukan server dibuka pada port 80 lalu diteruskan ke  127.0.0.1:3000 dimana ini adalah IP aplikasi node js kita. Sebelumnya pastikan dulu aplikasi node jsnya sudah jalan ya, aplikasinya di IP 127.0.0.1 atau localhost dan terikat dengan port 3000

Setelah atur config diatas, replikasi config diatas dengan domain dan port yang berbeda.

lebih baik konfigurasinya dipisah agar lebih rapih, contoh sususannya bisa diliat dibawah berikut

/etc/nginx/sites-available/contoh1.conf
/etc/nginx/sites-available/contoh2.conf
/etc/nginx/sites-available/contoh3.conf
/etc/nginx/sites-available/contoh4.conf

Direkomendasikan jg untuk mengubah konfigurasi yang ada di file /etc/nginx/nginx.conf

dari

include sites-enabled/*;

atau

include /etc/nginx/sites-enabled/*;

menjadi

include /etc/nginx/sites-available/*;

alasannya agar kita tidak perlu melakukan symlink tiap file

ari

/sites-available

ke

/sites-enabled

yang sebenernya bisa di skip 😀 dengan cara diatas

ohiya direkomendasikan jg untuk menyiapkan satu file berisi konfigurasi terpisah, caranya dengan membuat file config terlebih dahulu

nano /etc/nginx/proxy_params

dan salin konfigurasi dibawah ke dalam file tersebut, dan dapat di kondisikan sesuai kebutuhan masing2.

        proxy_buffers 16 32k;
        proxy_buffer_size 64k;
        proxy_busy_buffers_size 128k;
        proxy_cache_bypass $http_pragma $http_authorization;
        proxy_connect_timeout 59s;
        proxy_hide_header X-Powered-By;
        proxy_http_version 1.1;
        proxy_ignore_headers Cache-Control Expires;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
        proxy_no_cache $http_pragma $http_authorization;
        proxy_pass_header Set-Cookie;
        proxy_read_timeout 600;
        proxy_redirect off;
        proxy_send_timeout 600;
        proxy_temp_file_write_size 64k;
        proxy_set_header Accept-Encoding '';
        proxy_set_header Cookie $http_cookie;
        proxy_set_header Host $host;
        proxy_set_header Proxy '';
        proxy_set_header Referer $http_referer;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Original-Request $request_uri;

setelah selesai, include konfigurasi ini di setiap website yang sudah di konfigurasi, contoh:

/etc/nginx/sites-available/contoh1.conf

server
{
    listen 80;
    listen [::]:80;
    server_name contoh1.com www.contoh1.com;

    location /
    {
        proxy_pass http://127.0.0.1:3000;
        include /etc/nginx/proxy_params;
    }
}

/etc/nginx/sites-available/contoh2.conf

server
{
    listen 80;
    listen [::]:80;
    server_name domain02.com www.domain02.com;

    location /
    {
        proxy_pass http://127.0.0.1:3002;
        include /etc/nginx/proxy_params;
    }
}

/etc/nginx/sites-available/contoh3.conf

server
{
    listen 80;
    listen [::]:80;
    server_name contoh3.com www.contoh3.com;

    location /
    {
        proxy_pass http://127.0.0.1:3003;
        include /etc/nginx/proxy_params;
    }
}

/etc/nginx/sites-available/domain04.conf

server
{
    listen 80;
    listen [::]:80;
    server_name contoh4.com www.contoh4.com;

    location /
    {
        proxy_pass http://127.0.0.1:3004;
        include /etc/nginx/proxy_params;
    }
}

begitulah cara setting ngix dengan beberapa aplikasi node js, yang perlu dicatat adalah memastikan aplikasi running  dengan IP dan PORT yang sesuai yang sudah di atur dalam server.

Semoga bermanfaat

Terimakasih 🙂

Leave a Comment

Your email address will not be published. Required fields are marked *