Hvernig á að setja upp Koa.js Node forrit á Ubuntu 16.04 LTS

Í þessari kennslu munum við læra hvernig á að setja upp Koa.js vefforrit fyrir framleiðslu með því að nota Node.js. Við munum einnig tengja sýnishorn af léni, með öfugri umboði, með Apache, og læra hvernig á að stjórna því með réttum vinnslustjóra. Án frekari ummæla skulum við byrja.

Stutt lýsing á Node.js, Koa.js og Apache

Node.js er hröð JavaScript rammi sem byggir á V8 vél Chrome. Það er notað bæði í skjáborðs- og netþjónaforritum og er frægt fyrir einþráða atburðalykkju meðhöndlun. Node.js er með pakkaskrá sem kallast Node Package Manager (NPM), sem hýsir yfir hálfa milljón pakka. NPM pakkar (eða einingar) eru kjarninn í Node.js, þar sem þeir eru samfélagsdrifinn kóða sem getur verið gagnlegur í Node.js forritinu þínu. Í Koa.js appinu okkar er Node.js kjarninn í hlutverki þess.

Koa.js er naumhyggjulegur veframmi, byggður á Node.js pallinum. Gert af sama teymi á bak við hið vinsæla Express.js ramma, markmið þess er að lágmarka enn frekar lágmarks Express.js rammann með því að útiloka millihugbúnað frá kjarna hans. Helsti eiginleiki Koa.js er sú staðreynd að það eru engar hringingar. Koa.js er byggt á ES6-undirstaða rafala og ES6 eiginleika, eins og loforð.

Apache er vinsæll opinn vefþjónn, notaður sem grunnur upphafspunktur fyrir netþjóna. Í þessari kennslu munum við nota Apache sem öfugt umboð, sem gerir okkur kleift að tengja forritið okkar við sýnishornslén. Ef þú ert ekki með lén mun þessi kennsla samt virka fyrir þig, eini munurinn er sá að vefsíðan mun keyra á VPS IP þinni, í stað léns.

Uppsetning Node.js

Eins og með hvaða Node.js ramma sem er, þá þarftu að setja upp Node.js á VPS þinn. Fyrir sakir þessarar kennslu mun ég gera ráð fyrir að þú hafir nú þegar Node.js uppsett á vélinni þinni. Ef ekki, geturðu einfaldlega fylgst með leiðbeiningunum hér .

Að setja upp forritaskrána okkar

Við þurfum að búa til möppu sem mun innihalda kjarnaskrár forritsins okkar.

mkdir site

Ekki hika við að skipta siteút fyrir annað nafn sem þú vilt fyrir möppuna. Næst þurfum við að frumstilla Node.js pakkaskrána okkar. Skiptu yfir í möppuna sem þú varst að búa til, keyrðu npm init, og kláraðu leiðbeiningarnar. Að lokum ætti það að líta einhvern veginn svona út:

{
  "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"
}

Að setja upp Koa.js

Nú þegar við höfum sett upp möppuna okkar getum við haldið áfram að setja upp Koa.js. Í núverandi vinnuskrá, /site, sláðu inn eftirfarandi.

npm install koa

Þetta mun hlaða niður Koa.js einingunni frá NPM og setja hana upp í verkefnaskránni okkar til notkunar í framtíðinni. Næst munum við búa til sýnishorn af umsóknarskránni okkar sem mun geyma forritskóðann okkar. Til að gera það skaltu búa til index.jsskrá.

nano index.js

Þegar þú ert inni í skránni skaltu búa til sýnishornsforrit.

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
     ctx.body = 'Hello World';
 });

app.listen(3000);
console.log('Website is live!')

Vistaðu og lokaðu skránni. CTRL+ X.

Við viljum ganga úr skugga um að forritið okkar gangi rétt. Til að ræsa það skaltu keyra node index.js, og þú munt sjá Website is liveí stjórnborðinu.

Að setja upp Apache

Nú þegar við vitum að vefsíðan okkar er virk, getum við haldið áfram að setja upp Apache og ósjálfstæði þess.

sudo apt install -y libapache2-mod-proxy-html libxml2-dev

Til þess að nota öfuga proxy eiginleika sem finnast í Apache, verðum við að virkja nauðsynlegar einingar.

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

Sumar þessara eininga kunna að hafa þegar verið virkjaðar, en það er alltaf gott að athuga þær.

Nú þurfum við að breyta sjálfgefna stillingarskránni fyrir Apache.

sudo nano /etc/apache2/sites-enabled/000-default.conf

Hér þurfum við að bæta við blokk fyrir umsókn okkar.

<VirtualHost *:*>
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:3000/
    ProxyPassReverse / http://0.0.0.0:3000

    ServerName localhost
</VirtualHost>

Vistaðu skrána, CTRL+ X.

Þú gætir tekið eftir því að við erum að nota port 3000sem tengi fyrir okkar ProxyPassog ProxyPassReverseIP. Þar sem það er sama gátt og við erum að keyra Koa.js forritið okkar á, er mikilvægt að við setjum inn rétta höfnina.

Þegar breytingarnar eru komnar, þurfum við að endurræsa Apache og endurræsa Koa.js forritið okkar.

sudo systemctl restart apache2

Þetta mun tryggja að stillingarskráin okkar sé virk og tilbúin til að virka þegar við ræsum Koa.js forritið okkar. Þegar Apache hefur verið endurræst skaltu fara aftur í vefsvæðisskrána þína og ræsa Koa.js forritið eins og við gerðum áður. Í vafranum þínum, farðu að http://yourdomain, eða http://yourip:, og þú munt sjá „Halló heimur“.

Stjórna umsókn okkar með systemd

Nú þegar við höfum farið yfir grunnatriði þess að búa til sýnishorn af Koa.js forriti, gerum við okkur grein fyrir því að í framleiðsluumhverfi er óframkvæmanlegt að hefja forritið eins og við erum núna. Ferlastjóri er vissulega krafa. Það er þar sem systemd kemur við sögu. Í einföldu máli samanstendur systemd af hugbúnaði sem veitir byggingareiningar fyrir Linux kerfi. Svipað og „init“ býður það upp á kerfi til að stjórna notendaferlum eftir ræsingu kerfisins. Þegar um er að ræða forritið okkar gerir systemd okkur kleift að ræsa vefsíðuna okkar sjálfkrafa eftir að kerfið hefur verið endurræst, ef það er atburður sem truflar spennutíma kerfisins. Það býður einnig upp á sett af verkfærum sem geta komið sér vel þegar þú stjórnar forritinu okkar. Það besta er sú staðreynd að það er innbyggt í Ubuntu 16.04 LTS, svo við þurfum ekki að setja upp neinn viðbótarhugbúnað.

Búðu til kerfisbundna þjónustu

Allt sem við þurfum til að hefja forritið okkar mun vera að finna í skrá sem heitir service. Það geymir upplýsingar um appið okkar, svo sem nafn þess, skrá, umhverfi og fleira. Til að búa til kerfisskrána okkar skaltu opna textaritil.

sudo nano /lib/systemd/system/site.service

Breyttu og vistaðu skrána svona.

[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

Skiptu út youruserfyrir notandanafn netþjónsins þíns. Hér er stutt yfirlit yfir mikilvægu svæðin:

  • After - Þetta upplýsir systemd um að bíða þar til netviðmótið er tilbúið áður en forritið okkar hefst.
  • Environment- Hér getum við tilgreint umhverfisbreytur fyrir forritið okkar. Node.js höfnin okkar er ein af þeim.
  • Type - Þetta upplýsir systemd um að hægt sé að ræsa appið okkar, án þess að skipta sér af notendaréttindum og slíku.
  • User- Þetta segir systemd að við viljum keyra forritið undir notendareikningnum okkar, sem mælt er með. Að keyra forrit sem rótnotandi getur leitt til margra öryggismála.
  • ExecStart - Í meginatriðum skipunin sem systemd mun keyra til að ræsa forritið okkar, svipað og við byrjuðum það handvirkt áður.
  • Restart- Segir systemd við hvaða aðstæður á að endurræsa forritið okkar. Í þessu tilviki viljum við endurræsa vefsíðuna okkar ef upp kemur villa.

Byrjaðu kerfisþjónustuna

Við erum nú tilbúin að hefja systemd þjónustu okkar.

sudo systemctl daemon-reload

Þetta er nauðsynlegt þegar kerfisþjónustuskrá breytist til að systemd geti skráð allar nýjar breytingar sem gerðar eru.

Byrjaðu síðan umsókn þína.

sudo systemctl start site

Farðu aftur á síðuna í vafranum þínum til að ganga úr skugga um að allt virki.

Lykilkerfisstjórnunaraðgerðir

  • stop - Stöðvar forritið alveg.
  • restart - Stöðvar forritið og ræsir það aftur undir nýju ferli.
  • enable - Segir systemd að ræsa forritið í hvert skipti sem þú ræsir tölvuna þína.
  • status - Sýnir upplýsingar um forritið sem er í gangi, svo sem spenntur, stöðu forrits og fleira.

Til að nota einhverja af þessum aðgerðum skaltu keyra eftirfarandi.

systemctl <function> site

Niðurstaða

Við höfum sett upp Koa.js forrit með góðum árangri og lært hvernig á að snúa umboði því, auk þess að stjórna því með systemd. Þú ert nú tilbúinn til að auka umsókn þína og byggja á þessu dæmi. Ef þú vilt fræðast meira um Koa.js og fleira sem þú getur gert með, farðu á vefsíðu þeirra fyrir frekari upplýsingar. Að auki, ef þú vilt læra meira um vinnslustjóra systemd, lestu skjölin fyrir það hér . Að lokum, ef þú vilt læra meira um andstæða umboð Apache, ekki hika við að skoða þá hér .


Settu upp Cacti á Debian Jessie

Settu upp Cacti á Debian Jessie

Inngangur Cacti er opinn vöktunar- og grafatól sem byggir að fullu á RRD gögnum. Í gegnum Cacti geturðu fylgst með næstum hvers kyns tækjum

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Inngangur Lets Encrypt er vottunaryfirvaldsþjónusta sem býður upp á ókeypis TLS/SSL vottorð. Uppsetningarferlið er einfaldað af Certbot,

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Að nota annað kerfi? Hvað er Tekkit Classic? Tekkit Classic er modpack fyrir leikinn sem allir þekkja og elska; Minecraft. Það inniheldur eitthvað af ver

Settu upp iRedMail á Debian Wheezy

Settu upp iRedMail á Debian Wheezy

Að nota annað kerfi? Þessi kennsla mun sýna þér hvernig á að setja upp hópbúnaðinn iRedMail á nýrri uppsetningu á Debian Wheezy. Þú ættir að nota þjóna

Að búa til Jekyll blogg á Ubuntu 16.04

Að búa til Jekyll blogg á Ubuntu 16.04

Að nota annað kerfi? Jekyll er frábær valkostur við WordPress til að blogga eða deila efni. Það krefst enga gagnagrunna og það er mjög auðvelt i

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

PHP og tengdir pakkar eru algengustu íhlutirnir þegar vefþjónn er notaður. Í þessari grein munum við læra hvernig á að setja upp PHP 7.0 eða PHP 7.1 o

Hvernig á að setja upp Squid Proxy á CentOS

Hvernig á að setja upp Squid Proxy á CentOS

Smokkfiskur er vinsælt, ókeypis Linux forrit sem gerir þér kleift að búa til framsendingarforrit á vefnum. Í þessari handbók muntu sjá hvernig á að setja upp Squid á CentOS til að snúa þér

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Inngangur Lighttpd er gaffal af Apache sem miðar að því að vera miklu minna auðlindafrekt. Hann er léttur, þess vegna heitir hann, og er frekar einfaldur í notkun. Uppsetning

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

1. Virtualmin/Webmin Virtualmin er öflugt og sveigjanlegt stjórnborð fyrir vefhýsingu fyrir Linux og UNIX kerfi byggt á hinum vel þekkta Open Source vefgrunni

Setja upp Yii forrit á Ubuntu 14.04

Setja upp Yii forrit á Ubuntu 14.04

Yii er PHP ramma sem gerir þér kleift að þróa forrit hraðar og auðveldlega. Uppsetning Yii á Ubuntu er einföld, þar sem þú munt læra nákvæmlega

Notkun Skjár á Ubuntu 14.04

Notkun Skjár á Ubuntu 14.04

Skjár er forrit sem leyfir margs konar notkun flugstöðvarlota innan eins glugga. Þetta gerir þér kleift að líkja eftir mörgum flugstöðvum gluggum þar sem það ma

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Þessi kennsla útskýrir hvernig á að setja upp DNS netþjón með Bind9 á Debian eða Ubuntu. Í gegnum greinina skaltu skipta út-léninu þínu.com í samræmi við það. Á þ

Notkun Logrotate til að stjórna annálaskrám

Notkun Logrotate til að stjórna annálaskrám

Inngangur Logrotate er Linux tól sem einfaldar stjórnun annálaskráa. Það keyrir venjulega einu sinni á dag í gegnum cron-vinnu og stjórnar annálagrunni

Stilla Static Networking og IPv6 á CentOS 7

Stilla Static Networking og IPv6 á CentOS 7

VULTR hefur nýlega gert breytingar á enda þeirra og allt ætti nú að virka vel út úr kassanum með NetworkManager virkt. Ef þú vilt slökkva á

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Icinga2 er öflugt eftirlitskerfi og þegar það er notað í aðal-viðskiptavinamódel getur það komið í stað þörf fyrir NRPE-undirstaða vöktunareftirlit. Húsbóndinn

Settu upp Red5 Media Server á Ubuntu 16.04

Settu upp Red5 Media Server á Ubuntu 16.04

Að nota annað kerfi? Red5 er opinn uppspretta miðlara útfærður í Java sem gerir þér kleift að keyra Flash fjölnotendaforrit eins og straumspilun í beinni

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Í þessari grein munum við sjá hvernig á að setja saman og setja upp Nginx mainline frá opinberum heimildum Nginx með PageSpeed ​​einingunni, sem gerir þér kleift að

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Að nota annað kerfi? Apache Cassandra er ókeypis og opinn uppspretta NoSQL gagnagrunnsstjórnunarkerfi sem er hannað til að veita sveigjanleika, háan

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Að nota annað kerfi? Vanilla forum er opinn uppspretta spjallforrit skrifað í PHP. Það er fullkomlega sérhannaðar, auðvelt í notkun og styður utanaðkomandi

Hvernig á að setja upp Gitea á Debian 9

Hvernig á að setja upp Gitea á Debian 9

Að nota annað kerfi? Gitea er annað opinn uppspretta, sjálfhýst útgáfustýringarkerfi knúið af Git. Gitea er skrifað á Golang og er

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira