1. sudo apt update
  2. sudo apt install nginx
  3. sudo service nginx start
  4. sudo systemctl enable nginx

Data nginx.conf biasa terdapat di /etc/nginx/nginx.conf atau anda bisa ketik command locate nginx.conf untuk mencari file tersebut, di bawah ini adalah contoh konfigurasi tanpa SSL di port 80

server {

    listen 80;

    server_name test.toserbachandra.co.id;

client_max_body_size 0;

ignore_invalid_headers off;

gzip on;

    gzip_comp_level 4;

    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;


    location / {

        proxy_pass http://localhost:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto https;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-NginX-Proxy true;

proxy_redirect off;

proxy_request_buffering off;

proxy_connect_timeout  36000s;

proxy_read_timeout  36000s;

proxy_send_timeout  36000s;

send_timeout  36000s;

client_max_body_size 10240m;

    }

}

  1. listen pastikan ke port 80 ( default port nginx ) agar proxy dapat di akses.
  2. server_name adalah domain yang di pointing ke ip public server, contoh di atas adalah subdomain dari domain toserbachandra.co.id yang di pointing ke ip public server.
  3. di bagian location adalah navigasi aplikasi dengan port local 3000 dengan demikian saat test.toserbachandra.co.id di akses, nginx akan meneruskan akses ke http://localhost:3000, ini hanyalah sebuah contoh, ubah port local sesuai dengan aplikasi yang berjalan di server eg, 8080,8069, etc.
Konfigurasi Nginx SSL

server {

    listen 443 ssl;

    server_name test.toserbachandra.co.id;

client_max_body_size 0;

ignore_invalid_headers off;

gzip on;

    gzip_comp_level 4;

    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;


ssl_certificate etc/ssl/ssl.pem;

ssl_certificate_key etc/ssl/key.pem;


    location / {

        proxy_pass http://localhost:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto https;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-NginX-Proxy true;

proxy_redirect off;

proxy_request_buffering off;

proxy_connect_timeout  36000s;

proxy_read_timeout  36000s;

proxy_send_timeout  36000s;

send_timeout  36000s;

client_max_body_size 10240m;

    }

}

  1. Listen ke port 443 untuk SSL.
  2. Tambahkan ssl_certificate location path dan ssl_certificate_key path, di contoh ini saya menyimpan file pem tersebut di /etc/ssl
  3. Tambakan permission ke /etc/ssl gunakan kode 750 atau 755
    sudo chmod 750 /etc/ssl
  4. tambahkan permission ke masing-masing file pem
    sudo chmod 600 /etc/ssl/ssl.pem
    sudo chmod 600 /etc/ssl/key.pem
  5. cek nginx.conf apakah sudah berjalan dengan baik dengan 
    nginx -t
    Jika ada pesan error, lakukan perbaikan terlebih dahulu
  6. Restart Nginx dengan command
    sudo service nginx restart

Konfigurasi nginx telah selesai dilakukan dan dapat di gunakan.