Rabu, 28 Juli 2021

pada

 

Helo, kali ini ane mau sharing tentang pengalaman deployment Java SpringBoot ke virtual machine / biasa kalian mengunakan server seperti digital ocean dll.
Sebelum itu pastikan hal ini sudah tersiapkan dengan baik yaa..

  • Pastikan project kalian sudah running baik dilocal 
  • Bundle menjadi sebuah package Jar yang nanti ditaruh di server.
  • File Config Application.Properties sudah sesuai dengan configurasi server anda.
  • Configurasi server sudah sama seperti dilokal seperti Java version/Mvn version.
Disini saya akan menggunakan full CLI alias melalui terminal/cmd.

Langsung aja pertama remote ssh ke server.


Masukan perintah ssh untuk remote server sebagai berikut

ssh -p 22 -i ~/.ssh/id_rsa namauser@ipanda

~/.ssh/ merupakan directory dari kalian menempatkan sshkey yang sudah digenerate

-p 22  adalah port number remote ssh 

Jika berhasil terhubung akan masuk ke terminal server 


Setelah itu masuk ke directory yang kamu pilih untuk menyimpan file Jar hasil generate kalian 

Sebagai contoh saya mengupload file program.Jar saya ke path /home/var/ww

Buka terminal baru lalu masukan perintah

sftp -P 22 -i ~/.ssh/id_rsa adiabdurrakh@35.209.242.226

 


Setelah berhasil masuk akan terlihat Sftp>

Masukan perintah upload seperti berikut

PUT C:\Users\HP\Desktop\Spring\out\artifacts\demo_jar\demo.jar \var\www\build.jar

Penjelasan PUT dirLocalAnda.jar dirTujuanAnda.Jar

Setelah upload berhasil file Jar akan berada directory \var\www\build.ar

lalu bagaimana cara running nya apakah seperti dilokal java -jar build.jar ? Yup ! tepat sekali tetapi server akan meruning apliskasi springBoot  tetapi akan berhenti ketika kalian keluar dari terminal atau prosesnya di cancel.

Solusinya ada ko. yang pertama kita lakukan yaitu konfigurasi reverse proxy nginx yang perlu dipersiapkan dan ditaruh ke folder /etc/nginx/sites-enabled

Reverse proxy berguna untuk menredirect app kalian ke IP root yang nantinya tidak sudah memakai PORT lagi.

Buat file berformat .conf  lalu masukan ke dalam sever /etc/nginx/sites-enabled

server {

    listen 80;

    server_name IP SERVER ANDA;

    location / {

        proxy_pass http://localhost:8080/;\

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\

        proxy_set_header X-Forwarded-Proto $scheme

        proxy_set_header X-Forwarded-For $server_port

        proxy_set_header Host $host

        proxy_redirect off

    }

}

disini saya membari nama demo.conf

Setelah buat lalu lakukan kembali perintah upload sebelumnya

PUT C:\Users\HP\Desktop\Spring\out\artifacts\demo_jar\demo.conf  /etc\nginx/sites-enabled/demo.conf

Jika sukses melakukan upload lakukan perintah berikut di remote ssh server

sudo nginx -t

sudo systemctl reload nginx


1 File config lagi untuk me running SpringBoot Apps secara otomatis

Buat file berformat nama.service lalu masukan ke dalam server etc/systemd/system/

[Unit]

Description=Aplikasi Demo

After=syslog.target

[Service]

User=adiabdurrakh

WorkingDirectory=/home/var/www/

ExecStart=java -jar /home/var/www/build.jar

SuccessExitStatus=143

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

disini saya memberi nama demo.service


Dan akhirnya file jar kalian siap dijalankan secara otomatis, cukup lakukan perintah berikut diterminal ssh pada file demo.service :

$ sudo systemctl daemon-reload

$ sudo systemctl stop <nama berkas systemd>

$ sudo systemctl start <nama berkas systemd>

Sekarang anda bisa akses aplikasi spring kalian di ip.anda./ 

$ sudo systemctl status<nama berkas systemd>


Yap ! aplikasi SpringBoot kalian sudah running secara public .


NOTES : Jangan ganti file JAR kalian kalau belum stop service pada file systemd/

karena akan berakibat Server Error atau bahkan harus sampai hard Reset VM


1 komentar:

  1. Best Betting Sites That Make Money From Online Sports
    In short, online sportsbooks are one of infiniti pro rainbow titanium flat iron the best betting sites to titanium oxide earn money งานออนไลน์ by. black titanium wedding band titanium bar stock It's a huge bonus and a huge deposit bonus.

    BalasHapus