Instaliranje čvora
Instalacija Nginxa
Pokretanje našeg projekta Keystone
Inicijalizacija naše baze podataka
Instalacija PM2
Pokretanje/upravljanje aplikacijom na PM2
Postavljanje vašeg obrnutog proxyja
U ovom vodiču postavljat ćemo web poslužitelj s obrnutim proxyjem. CMS koji ćemo koristiti je Keystone.js, dobro poznati okvir web aplikacija baziran na Express.js. Obrnuti proxy koji ćemo koristiti je Nginx, koji je besplatni reverzni proxy otvorenog koda, kao i HTTP poslužitelj. Baza podataka koju ćemo koristiti je MongoDB, NoSQL baza podataka dokumenata. To će zahtijevati da imate postavljenu domenu s zapisima. Ako nemate taj set, samo naprijed i pobrinite se za to i vratite se na ovaj vodič.
Instaliranje čvora
Prvo ćemo instalirati Node.js, koji je Javascript interpreter baziran na Chrome V8 Javascript motoru.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
Instalacija Nginxa
Zatim ćemo instalirati Nginx, naš obrnuti proxy.
sudo apt update
sudo apt install nginx
Ovo će ažurirati popise paketa i instalirati Nginx. Nakon što je instalacija gotova, mi ćemo postaviti naš projekt čvora.
Pokretanje našeg projekta Keystone
Kreirajte naš projekt čvora. Da biste to učinili, jednostavno stvorite novu mapu.
mkdir website
Zatim ćemo kreirati našu package.jsondatoteku. Da biste to učinili, jednostavno pokrenite npm initu svom terminalu, ispunite polja i odgovorite na " yes" za potvrdu. Nakon što kreirate package.jsondatoteku, instalirat ćemo sljedeće module čvora.
sudo npm install -g generator-keystone
sudo npm install -g yo
Nakon što je preuzimanje završeno, pokrenite sljedeće.
yo keystone
Ispunite potrebna polja. Tražit će od vas project name, template engine, emailza upravljačku ploču i tako dalje. Ako ne znate što odabrati, tada će zadane postavke biti u redu. Nakon što ste konfigurirali svoje keystone postavke, možemo testirati radi li se naš poslužitelj tako da upišete node keystonekako biste pokrenuli aplikaciju. Prema zadanim postavkama, vaša će aplikacija biti pokrenuta na localhost, na portu 3000. Imajte na umu da ako nemate instaliran MongoDB, baza podataka vam neće odmah biti dostupna. Kako ga instalirati možete naučiti kasnije u vodiču.
Ovdje je osnovni izgled direktorija za Keystone.js:
/lib - Ovdje ćete pohraniti svoje prilagođene biblioteke i drugi kod.
/models- Ovdje ćete pohraniti modele baze podataka vaše aplikacije. KeystoneJS koristi MongoDB kao pružatelja baze podataka.
/public - Ovdje će se pohranjivati vaše statičke datoteke (CSS, JS, slike i tako dalje).
/routes/api - Ovdje će biti pohranjeni API kontroleri vaše aplikacije.
/routes.views - Kontroleri prikaza aplikacije bit će pohranjeni ovdje.
/templates - Ovdje će biti pohranjene sve datoteke predložaka vaše aplikacije.
/updates - Ovdje će biti pohranjene vaše migracijske skripte.
package.json - Ovo je vaša npm konfiguracijska datoteka koju je generator generirao za nas.
keystone.js - Naša glavna početna datoteka, pokrećemo je kada pokrenemo web stranicu.
Inicijalizacija naše baze podataka
Kao što je ranije spomenuto, naša baza podataka koju ćemo koristiti je MongoDB, što je pouzdana NoSQL, dokumentno orijentirana baza podataka. Ako već imate instaliran MongoDB, možete preskočiti ovaj odjeljak. Ako ne, evo kako ga instalirati na Ubuntu 16.04.
Uvezite javni ključ koji se koristi za mongoDB paket.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Napravite datoteku s popisom koja se koristi za instalaciju paketa.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Ažurirajte svoje popise paketa pomoću apt.
sudo apt update
Konačno, instalirajte MongoDB.
sudo apt install mongodb-org -y
Kada se ova instalacija završi, pokrenite MongoDB.
sudo service mongod start
Ovo će pokrenuti MongoDB proces na portu 27017.
MongoDB će se koristiti u cijeloj aplikaciji i koristit će se za pohranjivanje informacija koje koristimo za naše modele, na primjer Usermodel. Keystone ga koristi kao svoju bazu podataka po izboru i trenutno ne možete koristiti druge dobavljače baza podataka.
Instalacija PM2
Sada je vrijeme za instaliranje PM2 (Process Manager 2.) PM2 je upravitelj procesa za Node.js aplikacije, u obliku npm modula. Omogućuje vam jednostavan način za upravljanje aplikacijama i njihovo pokretanje u pozadini. Budući da je u NPM-u, sve što moramo učiniti da ga instaliramo je pokrenuti sljedeće.
sudo npm install pm2 -g
To govori npm-u da ga instalira globalno, tako da ga možemo koristiti bilo gdje u našem sustavu.
Pokretanje/upravljanje aplikacijom na PM2
Ranije smo pokrenuli našu web aplikaciju s node keystone. S PM2 je malo drugačije. Sada pokrećemo našu aplikaciju čvora sa sljedećim.
pm2 start keystone.js
Ovo će dodati našu PM2 aplikaciju na naš popis procesa, a prikazat će se mali okvir tako da možete vidjeti da je doista na mreži. Obratite pažnju na okvir označen idza vaš proces. Držite ovo blizu, jer ćemo kasnije to mnogo spominjati.
Da biste vidjeli zapisnike za svoju aplikaciju.
pm2 logs [id]
Na primjer, pm2 logs 0ako je ovo vaša prva PM2 aplikacija.
Za zaustavljanje vaše web aplikacije u bilo kojem trenutku.
pm2 stop [id]
Za potpuno brisanje aplikacije.
pm2 delete [id]
PM2 čak ima nadzornu ploču za nadzor ako želite vidjeti neke osnovne statistike za svoju aplikaciju, a pomoću toga joj možete pristupiti.
pm2 monit
Ovo će pokazati neke osnovne informacije kao što su korištenje RAM-a, korištenje CPU-a i vrijeme neprekidnog rada.
Sjajna značajka koju PM2 nudi je watching. U biti, gledanje je kada PM2 automatski detektira promjene u bilo kojoj od datoteka u istom direktoriju kao i vaša početna datoteka i automatski će ponovno pokrenuti vašu aplikaciju. Da biste ga omogućili, jednostavno ponovno pokrenite aplikaciju, ali joj dostavite zastavicu za sat.
pm2 restart [id] --watch
Da biste onemogućili gledanje nakon što je omogućeno, jednostavno ponovno pokrenite istu naredbu i gledanje će biti onemogućeno.
U ovom ćemo tutorialu napustiti gledanje.
Postavljanje vašeg obrnutog proxyja
Provjerite jeste li instalirali Nginx. Ako iz nekog razloga nije, pogledajte gore navedene korake.
Prilagodite postavke vatrozida. Na Ubuntu ufwje službeni vatrozid. Prema zadanim postavkama, veze su blokirane na portu 80. Moramo dodati iznimku za Nginx na portu 80, na kojem će se pokrenuti naša web aplikacija.
sudo ufw allow 'Nginx HTTP'
Provjerite radi li vaš Nginx poslužitelj.
systemctl status nginx
U Activeodjeljku, ako vidite active (running), onda ste spremni. Ako ne, možete pokušati ponovno pokrenuti uslugu.
systemctl restart nginx
Izbrišite zadanu konfiguracijsku datoteku Nginxa.
sudo rm /etc/nginx/sites-available/default
Napravite novi i jednostavno ga nazovite node.
sudo nano /etc/nginx/sites-available/node
Zalijepite sljedeće u datoteku i zamijenite example.comdomenom svoje web stranice.
listen 80;
server_name example.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:3000";
}
}
Imajte na umu da proxy_passoznačava IP na kojem se naša aplikacija Keystone izvodi lokalno, a to je localhostna portu 3000.
listen 80je port na koji želimo da aplikacija bude usmjerena, a to je u ovom slučaju port 80.
Zatim moramo stvoriti simboličku vezu ili simboličku vezu na mapu pod nazivom sites-enabled. Razlika između sites-enabledi sites-availableje u tome što sites-enabledje Nginx zapravo učitava.
sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node
Sada će vaša konfiguracijska datoteka sites-availablebiti spremna za korištenje i bit će učitana iz sites-enabled. Da biste primijenili konfiguraciju tako da stupi na snagu, jednostavno ponovno pokrenite Nginx.
sudo systemctl restart nginx
Konačno, ponovno pokrenite svoju PM2 aplikaciju
pm2 restart [id]
Sada možete navigirati do svoje domene u pregledniku i vidjet ćete Welcome to Keystonezaslon s panelom na koji se možete prijaviti.
Ako ga vidite, onda ste uspješno postavili Node.js proizvodni web poslužitelj. Ako niste, možda ste neki korak napravili pogrešno i možda ćete se htjeti vratiti i pažljivo slijediti svaki korak.
Možete saznati više o Nginxu ako posjetite njihovu web stranicu .
Nadam se da ste uživali u ovom vodiču i nadam se da vam je ovo pomoglo da postavite vlastiti web poslužitelj za proizvodnju na vašem Vultr VPS-u.