Hosting Javascript aplikacija

nginx + javascript
nginx + javascript

Hosting Javascript aplikacija na cPanel serverima može biti izazovan, iako cPanel ima podršku za te aplikacije. Razlog tome je što cPanel nije optimiziran za Node.js i druge tehnologije koje se često koriste u razvoju Javascript aplikacija. Također, cPanel nije u stanju automatski provoditi ažuriranja i skaliranje aplikacija, što može dovesti do problema s performansama i stabilnošću. Stoga, ako želite hostati Javascript aplikacije, vjerojatno ćete trebati dodatne resurse i stručnost da biste ih uspješno instalirali i održavali na cPanel serveru.

Zbog problema s hostanjem Javascript aplikacija na cPanel serverima, Plus hosting je izbacio novu uslugu VPS dev. Ova usluga nudi VPS server sa 1 CPU jezgrom, 1 GB memorije, 20 GB prostora i operativnim sustavom po izboru za samo 3.31€ mjesečno. Ovaj VPS server omogućuje lakše i brže hostanje Javascript aplikacija bez briga o problemima performansi i stabilnosti. Ovaj VPS će biti idealan za sve koji žele razvijati i hostati svoje aplikacije bez ograničenja i izazova. Sa ovom uslugom, moći ćete brzo i lako postaviti svoj server i krenuti sa razvojem svojih aplikacija.

VPS ponuda na https://plus.hr
VPS ponuda na https://plus.hr

Uključivanje passwordless login-a

Uključivanje passwordless ssh login-a zahtijeva generiranje ssh ključeva i njihovo dodavanje na server. Public key se dodaje na server u datoteku ~/.ssh/authorized_keys.

  1. Generirajte ssh ključeve pomoću naredbe ssh-keygen.
  2. Kreirajte datoteku authorized_keys na serveru: touch ~/.ssh/authorized_keys
  3. Kopirajte sadržaj vašeg public key-a iz datoteke ~/.ssh/id_rsa.pub u datoteku ~/.ssh/authorized_keys na serveru.
  4. Postavite pravilne dozvole na datoteku authorized_keys: chmod 600 ~/.ssh/authorized_keys

Nakon što su public key i authorized_keys datoteka konfigurirani na serveru, moći ćete se prijaviti na server koristeći passwordless ssh login. Sada ćete moći brzo i sigurno pristupiti svom serveru bez brige o hakiranju lozinke ili gubitka iste.

Isključivanje password autentifikacije

Isključivanje password autentifikacije u ssh konfiguraciji može se izvesti sljedećim koracima:

  1. Prijavite se na server putem ssh terminala.
  2. Otvorite ssh konfiguracijski datoteku u tekst editoru, npr. nano: sudo nano /etc/ssh/sshd_config
  3. Pronađite liniju PasswordAuthentication i promijenite njezinu vrijednost s “yes” na “no”.
  4. Spremite i zatvorite datoteku.
  5. Restartajte ssh servis kako bi izmjene stupile na snagu: sudo service ssh restart
Isključivanje password autentifikacije
Isključivanje password autentifikacije

Nakon izvršenja ovih koraka, password autentifikacija će biti isključena, a samo ssh ključevi će se koristiti za autentifikaciju na serveru. To će povećati sigurnost vašeg servera i omogućiti vam brži i sigurniji pristup.

Instalacija Nginx-a i Lets Encrypt-a slijedi sljedeće korake:

  1. Instalirajte Nginx korištenjem sustavskih naredbi, npr. sudo apt-get install nginx
  2. Instalirajte certbot korištenjem sustavskih naredbi, npr. sudo apt-get install certbot python3-certbot-nginx
  3. Pokrenite certbot naredbom sudo certbot --nginx
  4. Certbot će automatski konfigurirati Nginx i generirati SSL certifikate.
  5. Provjerite da li je Nginx pravilno konfiguriran i da li certifikati funkcioniraju, otvorivši vašu web stranicu u pregledniku i provjerivši da li se koristi HTTPS protokol.

Nginx i Lets Encrypt će zajedno omogućiti vam da postavite HTTPS web stranicu koja će biti sigurna i autentična. Ova konfiguracija će također pomoći da se poveća brzina i performanse web stranice, kao i da se poveća njezina sigurnost i privlačnost za posjetitelje. Ukoliko želite dodatno poboljšati performanse vaše web stranice, možete se pozabaviti temama kao što su caching, kompresija i optimizacija.

NGINX

Sljedeći korak u postavljanju VPS dev servera je podešavanje konfiguracije Nginx web servera.

Postavljanje website-a u Nginx folder “sites-available” i konfiguracija za proxy na localhost:[port] aplikacije uključuju sljedeće korake:

  1. Kreirajte datoteku Nginx konfiguracije za vašu aplikaciju u folderu /etc/nginx/sites-available npr. sudo nano /etc/nginx/sites-available/moja-aplikacija.
  2. U datoteku unesite sljedeći kod:

server {
listen 80;
server_name moja-domena.com;
location / {
proxy_pass http://localhost:[port];
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

  1. Povežite datoteku konfiguracije sa folderom “sites-enabled” korištenjem naredbe sudo ln -s /etc/nginx/sites-available/moja-aplikacija /etc/nginx/sites-enabled/
  2. Provjerite da li postoji greška u Nginx konfiguraciji korištenjem naredbe sudo nginx -t
  3. Ako ne postoje greške, ponovno pokrenite Nginx korištenjem naredbe sudo systemctl restart nginx

Ovom konfiguracijom, Nginx će dobiti pristup aplikaciji na serveru na portu [port]. Sada ćete moći pristupiti svom website-u putem svoje domene. Konfiguracija za proxy također će omogućiti Nginx-u da učinkovito preusmjeri zahtjeve za vašu aplikaciju.

NVM vs. NODE.JS

 

NVM (Node Version Manager) omogućuje vam da instalirate i upravljate više verzija Node.js-a na istom serveru. To je korisno ako radite na više projekata koji zahtijevaju različite verzije Node.js-a. Instaliranjem NVM-a, možete jednostavno zamijeniti verziju Node.js-a za svaki projekt bez brige o utjecaju na druge projekte. Alternativno, ako instalirate Node.js globalno na server, sve aplikacije koje se koriste na serveru će koristiti tu jednu verziju. Dakle, NVM vam omogućuje da imate više kontrole nad verzijama Node.js-a na svom serveru.

  1. Instalirajte NVM (Node Version Manager): curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash.
  2. Instalirajte potrebnu verziju Node.js-a korištenjem NVM-a: nvm install verzija.
  3.  i na kraju ako imate više verzija onda nvm use verzija.

PM2 – Proces manager

PM2 je efikasni proces manager za Node.js aplikacije. On vam omogućuje da pokrećete i upravljate svojim Node.js aplikacijama kao produkcijskim procesima, čime osiguravate njihovo neprekidno funkcioniranje, automatsko ponovno pokretanje u slučaju pogreške, lako praćenje performansi i drugo.

 

  1. pm2 start [app.js] – Pokreće aplikaciju.
  2. pm2 stop [app.js] – Zaustavlja aplikaciju.
  3. pm2 restart [app.js] – Ponovo pokreće aplikaciju.
  4. pm2 delete [app.js] – Briše aplikaciju iz PM2-a.
  5. pm2 list – Prikazuje trenutno pokrenute aplikacije.
  6. pm2 logs – Prikazuje logove za aplikacije.
  7. pm2 monit – Prikazuje trenutne performanse svih aplikacija.
  8. pm2 show [app.js] – Prikazuje detaljne informacije o aplikaciji.
  9. pm2 scale [app.js] [num_instances] – Mijenja broj instance aplikacije.
  10. pm2 reload [app.js] – Ponovo učitava konfiguracijsku datoteku za aplikaciju bez prekida rada.
  11. pm2 reset [app.js] – Resetira brojčane statistike za aplikaciju.

Ovo su samo neke od naredbi koje PM2 nudi, dodatne naredbe i funkcionalnosti također su dostupne.

efikasni proces menadžer za Node.js aplikacije
efikasni proces menadžer za Node.js aplikacije – sve komande

Aplikacija – Next.js

Next.js je open source JavaScript framework koji se koristi za razvoj web aplikacija i stranica. Najbolje ga je koristiti za stvaranje dinamičkih aplikacija, značajki za SEO, izradu brzih i performantnih stranica, te lakoću održavanja i razvoja. Next.js također podržava Server Side Rendering (SSR), što omogućava bržu učitavanje stranice i bolju podršku pretraživačima. Uz to, Next.js također nudi jednostavnu integraciju s drugim tehnologijama, kao što su Node.js, React, GraphQL i druge. Ukratko, Next.js je jedna od najboljih opcija za razvoj dinamičkih web aplikacija i stranica.

 

  1. Klonirajte Next.js aplikaciju s GitHub-a: git clone [link-repozitorija]
  2. Uđite u direktorij aplikacije: cd [ime-direktorija]
  3. Instalirajte zavisnosti: npm install
  4. Pokrenite build proces: npm run build
  5. Instalirajte PM2: npm install pm2 -g
  6. Pokrenite aplikaciju s PM2: pm2 start npm -- start
  7. Provjerite stanje aplikacije s PM2: pm2 list
  8. Provjerite logove aplikacije s PM2: pm2 logs

To bi bilo to za jednostavan deploy Next.js aplikacije s PM2 na VPS dev serveru uz NginX i SSL zaštitu.

Povezani članci

Odgovori