- sudo apt update
- sudo apt install nginx
- sudo service nginx start
- 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;
}
}
- listen pastikan ke port 80 ( default port nginx ) agar proxy dapat di akses.
- 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.
- 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.
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;
}
}
- Listen ke port 443 untuk SSL.
- Tambahkan ssl_certificate location path dan ssl_certificate_key path, di contoh ini saya menyimpan file pem tersebut di /etc/ssl
- Tambakan permission ke /etc/ssl gunakan kode 750 atau 755
sudo chmod 750 /etc/ssl - tambahkan permission ke masing-masing file pem
sudo chmod 600 /etc/ssl/ssl.pem
sudo chmod 600 /etc/ssl/key.pem - cek nginx.conf apakah sudah berjalan dengan baik dengan
nginx -t
Jika ada pesan error, lakukan perbaikan terlebih dahulu - Restart Nginx dengan command
sudo service nginx restart
Konfigurasi nginx telah selesai dilakukan dan dapat di gunakan.