Përshkrim i shkurtër i Node.js, Koa.js dhe Apache
Konfigurimi i Node.js
Vendosja e drejtorisë sonë të aplikacionit
Po instalon Koa.js
Instalimi i Apache
Menaxhimi i aplikacionit tonë me systemd
konkluzioni
Në këtë tutorial, ne do të mësojmë se si të konfigurojmë një aplikacion ueb Koa.js për prodhim, duke përdorur Node.js. Ne gjithashtu do të lidhim një domen mostër, me një përfaqësues të kundërt, duke përdorur Apache dhe do të mësojmë se si ta menaxhojmë atë me një menaxher të duhur të procesit. Pa zgjatur më tej, le të fillojmë.
Përshkrim i shkurtër i Node.js, Koa.js dhe Apache
Node.js është një kornizë e shpejtë JavaScript ndër-platformë e bazuar në motorin V8 të Chrome. Përdoret si në aplikacionet e desktopit ashtu edhe në serverët dhe është i famshëm për trajtimin e ciklit të ngjarjeve me një fije të vetme. Node.js përmban një regjistër paketash të quajtur Node Package Manager (NPM), i cili pret mbi gjysmë milioni paketa. Paketat (ose modulet) NPM janë shtylla kryesore e Node.js, pasi ato janë kode të drejtuara nga komuniteti që mund të jenë të dobishëm në aplikacionin tuaj Node.js. Në aplikacionin tonë Koa.js, Node.js është pjesa kryesore e funksionit të tij.
Koa.js është një kornizë minimaliste ueb, e ndërtuar në platformën Node.js. Krijuar nga i njëjti ekip pas kornizës popullore Express.js, qëllimi i tij është të minimizojë më tej kornizën tashmë minimaliste Express.js duke përjashtuar programin e mesëm nga thelbi i tij. Një tipar kryesor i Koa.js është fakti se nuk ka kthime të thirrjeve. Koa.js është ndërtuar mbi gjeneratorë të bazuar në ES6 dhe veçori ES6, të tilla si Promises.
Apache është një server i njohur në internet me burim të hapur, i përdorur si një pikënisje shumë themelore për serverët në internet. Në këtë tutorial, ne do të përdorim Apache si një përfaqësues të kundërt, i cili do të na lejojë të lidhim aplikacionin tonë me një domen mostër. Nëse nuk keni një domen, ky tutorial do të vazhdojë të funksionojë për ju, me ndryshimin e vetëm që faqja e internetit do të funksionojë në IP-në tuaj VPS, në vend të një domeni.
Konfigurimi i Node.js
Ashtu si me çdo kornizë Node.js, do t'ju duhet të instaloni Node.js në VPS-në tuaj. Për hir të këtij tutoriali, unë do të supozoj se ju tashmë keni Node.js të instaluar në sistemin tuaj. Nëse jo, thjesht mund të ndiqni udhëzimet këtu .
Vendosja e drejtorisë sonë të aplikacionit
Do të na duhet të krijojmë një dosje, e cila do të përmbajë skedarët bazë të aplikacionit tonë.
mkdir site
Mos ngurroni të zëvendësoni siteme çdo emër tjetër që dëshironi për drejtorinë. Më pas, do të na duhet të inicializojmë skedarin tonë të paketës Node.js. Ndrysho në drejtorinë që sapo ke krijuar dhe ekzekuto npm initdhe plotëso kërkesat. Në fund, duhet të duket diçka si kjo:
{
"name": "site",
"version": "1.0.0",
"description": "Koa.js Site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yourname",
"license": "ISC"
}
Po instalon Koa.js
Tani që kemi konfiguruar drejtorinë tonë, mund të vazhdojmë të instalojmë Koa.js. Në drejtorinë aktuale të punës /site, shkruani sa vijon.
npm install koa
Kjo do të shkarkojë modulin Koa.js nga NPM dhe do ta instalojë në drejtorinë tonë të projektit për përdorim në të ardhmen. Më pas, ne do të krijojmë skedarin tonë të aplikacionit mostër që do të mbajë kodin tonë të aplikacionit. Për ta bërë këtë, krijoni një index.jsskedar.
nano index.js
Pasi të futeni në skedar, krijoni një aplikacion mostër.
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
console.log('Website is live!')
Ruani dhe mbyllni skedarin. CTRL+ X.
Ne do të duam të sigurohemi që aplikacioni ynë të funksionojë siç duhet. Për ta nisur, ekzekutoni node index.jsdhe do ta shihni Website is livenë tastierë.
Instalimi i Apache
Tani që e dimë se faqja jonë e internetit është funksionale, mund të vazhdojmë të instalojmë Apache dhe varësitë e tij.
sudo apt install -y libapache2-mod-proxy-html libxml2-dev
Për të përdorur funksionin e përfaqësuesit të kundërt të gjetur në Apache, do të na duhet të aktivizojmë modulet e nevojshme.
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
Disa nga këto module mund të jenë aktivizuar tashmë, por është gjithmonë mirë t'i kontrolloni ato.
Tani duhet të modifikojmë skedarin e konfigurimit të paracaktuar për Apache.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Këtu do të na duhet të shtojmë një bllok për aplikacionin tonë.
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:3000/
ProxyPassReverse / http://0.0.0.0:3000
ServerName localhost
</VirtualHost>
Ruani skedarin, CTRL+ X.
Ju mund të vini re se ne po përdorim portin 3000si port për IP-në tonë ProxyPassdhe ProxyPassReverse. Meqenëse është i njëjti port në të cilin po ekzekutojmë aplikacionin tonë Koa.js, është e domosdoshme që të futim portin e duhur.
Pasi të jenë vendosur ndryshimet, do të na duhet të rinisim Apache dhe të rihajmë aplikacionin tonë Koa.js.
sudo systemctl restart apache2
Kjo do të sigurojë që skedari ynë i konfigurimit të jetë aktiv dhe gati për të punuar kur të fillojmë aplikacionin tonë Koa.js. Pasi të riniset Apache, lundroni përsëri në direktorinë e faqes tuaj dhe filloni aplikacionin Koa.js siç bëmë më parë. Nga shfletuesi juaj i internetit, lundroni te http://yourdomain, ose http://yourip:, dhe do të shihni "Hello World".
Menaxhimi i aplikacionit tonë me systemd
Tani që kemi mbuluar bazat e krijimit të një aplikacioni model Koa.js, kuptojmë se në një mjedis prodhimi, nisja e aplikacionit siç jemi tani është jopraktike. Një menaxher procesi është padyshim një kërkesë. Këtu hyn në lojë systemd. Me fjalë të thjeshta, systemd përbëhet nga softuer që ofron blloqe ndërtimi për një sistem Linux. Ngjashëm me "init", ai ofron një sistem për të menaxhuar proceset e përdoruesit pas fillimit të sistemit. Në rastin e aplikacionit tonë, systemd na lejon të nisim automatikisht faqen tonë të internetit pasi sistemi të jetë rindezur, në rast se ka një ngjarje që ndërpret kohën e funksionimit të sistemit. Ai gjithashtu ofron një sërë mjetesh që mund të jenë të dobishme kur menaxhoni aplikacionin tonë. Pjesa më e mirë është fakti se është i integruar në Ubuntu 16.04 LTS, kështu që nuk kemi nevojë të instalojmë ndonjë softuer shtesë.
Krijo shërbim systemd
Gjithçka që na nevojitet për të filluar aplikacionin tonë do të përmbahet në një skedar të quajtur service. Ai përmban detaje rreth aplikacionit tonë, si emrin, drejtorinë, mjedisin dhe më shumë. Për të krijuar skedarin tonë të sistemit, hapni një redaktues teksti.
sudo nano /lib/systemd/system/site.service
Ndryshoni dhe ruani skedarin si kjo.
[Unit]
Description=desc here
Documentation=https://example.com
After=network.target
[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
Zëvendësojeni youruserme emrin e përdoruesit të serverit tuaj. Këtu është një përmbledhje e shpejtë e fushave të rëndësishme:
After - Kjo informon systemd-in të presë derisa ndërfaqja e rrjetit të jetë gati përpara se të fillojë aplikacionin tonë.
Environment- Këtu mund të specifikojmë variablat e mjedisit për aplikacionin tonë. Porti ynë Node.js është një prej tyre.
Type - Kjo informon systemd se aplikacioni ynë sapo mund të niset, pa i prishur privilegjet e përdoruesit dhe të tilla.
User- Kjo i tregon systemd se ne duam ta ekzekutojmë aplikacionin nën llogarinë tonë të përdoruesit, gjë që rekomandohet. Ekzekutimi i aplikacioneve si përdorues rrënjë mund të çojë në shumë kompromise sigurie.
ExecStart - Në thelb komanda që systemd do të ekzekutojë për të nisur aplikacionin tonë, e ngjashme me mënyrën se si e nisëm manualisht më parë.
Restart- Tregon systemd në cilat kushte të riniset aplikacioni ynë. Në këtë rast, ne duam të rifillojmë faqen tonë të internetit në rast gabimi.
Nisni shërbimin systemd
Tani jemi gati për të filluar shërbimin tonë systemd.
sudo systemctl daemon-reload
Kjo është e nevojshme sa herë që ndryshon një skedar shërbimi systemd në mënyrë që systemd të regjistrojë çdo ndryshim të ri të bërë.
Pastaj, filloni aplikimin tuaj.
sudo systemctl start site
Navigoni edhe një herë te faqja në shfletuesin tuaj, për të verifikuar që gjithçka po funksionon.
Funksionet kryesore të menaxhimit të sistemit
stop - Ndalon plotësisht aplikacionin.
restart - Ndalon aplikacionin dhe e rifillon atë në një proces të ri.
enable - I thotë systemd-it të nisë aplikacionin sa herë që ndizni kompjuterin tuaj.
status - Tregon informacione në lidhje me aplikacionin aktualisht në punë, si p.sh. koha e funksionimit, gjendja e aplikacionit dhe më shumë.
Për të përdorur ndonjë nga këto funksione, ekzekutoni sa më poshtë.
systemctl <function> site
konkluzioni
Ne kemi ngritur me sukses një aplikacion Koa.js dhe kemi mësuar se si ta kthejmë atë në proxy, si dhe ta menaxhojmë atë me systemd. Tani jeni gati të zgjeroni aplikacionin tuaj dhe të ndërtoni mbi këtë shembull. Nëse dëshironi të mësoni më shumë rreth Koa.js dhe më shumë gjëra me të cilat mund të bëni, vizitoni faqen e tyre të internetit , për më shumë informacione të dobishme. Përveç kësaj, nëse dëshironi të mësoni më shumë rreth menaxherit të procesit të systemd, lexoni dokumentacionin për të këtu . Së fundi, nëse dëshironi të mësoni më shumë rreth përfaqësuesit të kundërt të Apache, mos ngurroni t'i kontrolloni ato këtu .