Deploying Spring Boot Maven Web App na zewnętrzny serwer

0

Mam stronę internetową w Spring Boot, która działa lokalnie pod adresem localhost:8080. Chciałbym ją przenieść na mój serwer vps z Debianem 10.
Mam połączenie ssh i umiem wszystko instalować na Debianie.

Ta aplikacja webowa oparta jest tutorialu Enabling Cross Origin Requests for a RESTful Web Service

I ta aplikacja ma być na intrnecie pod takim typowym adresem jak example.com. Ma mieć port 80. Mam domenę, która jest podpięta pod adres IP tego vps.

Proszę o wskazówki. Z góry dziękuję

0

Z tego co zrozumiałem masz wszystko zainstalowane na VPS(czyli aplikacja też już tam jest), więc zainstaluj sobie sewer HTTP(np NGINX), przekieruj połączenie z NGINX z portu 80 na port aplikacji (z tego co widze 8080) i tyle : )

0

@Michall92: dobra mam już taki tutorial z nginksem. Ale ten projekt mam teraz w domu na komputerze i go odpalam tak $ ./mvnw spring-boot:run. W sumie mógłbym tak samo odpalać na vps. Ale jeszcze są jakieś możliwości, że się wysyła jar albo war. Więc jak to zrobić?

2

Uploadujesz jar na serwer, odpalasz go komendą java -jar aplikacja.jar, gdzie aplikacja.jar to nazwa Twojego JAR-a i aplikacja wstaje Ci na porcie 8080, albo innym, customowym. Resztę załatwiasz już w nginxie.

Edit żeby nie wprowadzać w błąd - tak jak pan Shalom powiedział - przy Springbootowym jarze, a o takowym była mowa - wystarczy go zawołać ./sdfsf.jar

2
  1. Jak budujesz springbootowy executable jar to w ogóle możesz go odpalić ./mojapka.jar bo ma na początku doklejony skrypt do odpalania
  2. Jak budujesz zwykły jar to java -jar mojaapka.jar
  3. W praktyce to raczej jakieś nohup java -jar mojaapka.jar czy coś takiego, żeby nie spinało ci tego z aktualną konsolą :)
  4. Porty i takie tam ustawiasz przez properties, np. server.port
  5. Nie potrzebujesz żadnego nginexa (ale może warto), wystarczy że odpalisz apkę a w VPSie ustawisz jaki port ma być widoczny na zewnątrz
  6. Konfigurujesz domenę żeby pokazywała na tą twoją apkę i voila.
0

Polecam napisać sobie configa pod systemd. Względnie prosta sprawa, a znacznie upraszcza zarządzanie cyklem życia aplikacji. Tutaj przykład z mojej maszyny (nazwa serwisu podmieniona):

[Unit]
Description=Nazwa
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/java cośtam
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/nazwa
User=nazwa
Group=nazwa
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nazwa

[Install]
WantedBy=multi-user.target

1 użytkowników online, w tym zalogowanych: 0, gości: 1