Kaip nustatyti Koa.js mazgo programą Ubuntu 16.04 LTS

Šiame vadove mes išmoksime, kaip sukurti Koa.js žiniatinklio programą gamybai naudojant Node.js. Taip pat susiesime pavyzdinį domeną su atvirkštiniu tarpiniu serveriu, naudodami „Apache“, ir išmoksime jį valdyti naudodami tinkamą proceso tvarkyklę. Nesivaržydami, pradėkime.

Trumpas Node.js, Koa.js ir Apache aprašymas

Node.js yra greita kelių platformų „JavaScript“ sistema, pagrįsta „Chrome“ V8 varikliu. Jis naudojamas tiek darbalaukio, tiek serverio programose ir garsėja vienos gijos įvykių ciklo apdorojimu. Node.js turi paketų registrą, vadinamą Node Package Manager (NPM), kuriame yra daugiau nei pusė milijono paketų. NPM paketai (arba moduliai) yra pagrindinis Node.js pagrindas, nes jie yra bendruomenės valdomas kodas, kuris gali būti naudingas jūsų Node.js programoje. Mūsų Koa.js programoje Node.js yra pagrindinė jos funkcijos dalis.

Koa.js yra minimalistinė žiniatinklio sistema, sukurta Node.js platformoje. Sukurta tos pačios komandos, kuri gamina populiariąją Express.js sistemą, jos tikslas yra dar labiau sumažinti jau minimalistinę Express.js sistemą, iš jos pagrindo neįtraukiant tarpinės programinės įrangos. Pagrindinis Koa.js bruožas yra tai, kad nėra atgalinių skambučių. Koa.js sukurtas remiantis ES6 generatoriais ir ES6 funkcijomis, pvz., Promises.

„Apache“ yra populiarus atvirojo kodo žiniatinklio serveris, naudojamas kaip labai paprastas žiniatinklio serverių pradžios taškas. Šioje pamokoje mes naudosime „Apache“ kaip atvirkštinį tarpinį serverį, kuris leis mums susieti programą su pavyzdiniu domenu. Jei neturite domeno, ši pamoka jums vis tiek veiks, tačiau vienintelis skirtumas yra tas, kad svetainė veiks jūsų VPS IP, o ne domene.

Node.js nustatymas

Kaip ir bet kurioje Node.js sistemoje, savo VPS turėsite įdiegti Node.js. Dėl šios pamokos manysiu, kad jūsų sistemoje jau įdiegtas Node.js. Jei ne, galite tiesiog vadovautis čia pateiktomis instrukcijomis .

Mūsų programų katalogo nustatymas

Turėsime sukurti aplanką, kuriame bus pagrindiniai mūsų programos failai.

mkdir site

Nedvejodami pakeiskite sitebet kokiu kitu katalogo pavadinimu. Tada turėsime inicijuoti Node.js paketo failą. Pakeiskite į ką tik sukurtą katalogą, paleiskite npm initir užpildykite raginimus. Galų gale tai turėtų atrodyti maždaug taip:

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

Koa.js diegimas

Dabar, kai turime savo katalogą, galime pradėti diegti Koa.js. Dabartiniame darbo kataloge /siteįveskite toliau pateiktą informaciją.

npm install koa

Tai atsisiųs Koa.js modulį iš NPM ir įdiegs jį į mūsų projekto katalogą, kad galėtumėte naudoti ateityje. Tada sukursime pavyzdinį programos failą, kuriame bus mūsų programos kodas. Norėdami tai padaryti, sukurkite index.jsfailą.

nano index.js

Patekę į failą, sukurkite programos pavyzdį.

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

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

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

Išsaugokite ir uždarykite failą. CTRL+ X.

Norime įsitikinti, kad mūsų programa veikia tinkamai. Norėdami jį pradėti, paleiskite node index.jsir Website is livekonsolėje pamatysite .

„Apache“ diegimas

Dabar, kai žinome, kad mūsų svetainė veikia, galime pradėti diegti „Apache“ ir jos priklausomybes.

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

Norėdami naudoti „Apache“ esančią atvirkštinio tarpinio serverio funkciją, turėsime įjungti reikiamus modulius.

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

Kai kurie iš šių modulių jau gali būti įjungti, bet visada naudinga juos dar kartą patikrinti.

Dabar turime redaguoti numatytąjį „Apache“ konfigūracijos failą.

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

Čia turėsime pridėti savo programos bloką.

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

    ServerName localhost
</VirtualHost>

Išsaugokite failą, CTRL+ X.

Galite pastebėti, kad prievadą naudojame 3000kaip savo ProxyPassir ProxyPassReverseIP prievadą . Kadangi tai yra tas pats prievadas, kuriame veikia Koa.js programa, būtina įvesti tinkamą prievadą.

Įdiegę pakeitimus turėsime iš naujo paleisti „Apache“ ir iš naujo paleisti „Koa.js“ programą.

sudo systemctl restart apache2

Tai užtikrins, kad mūsų konfigūracijos failas būtų aktyvus ir paruoštas darbui, kai paleisime Koa.js programą. Kai „Apache“ bus paleistas iš naujo, grįžkite į savo svetainės katalogą ir paleiskite programą „Koa.js“, kaip darėme anksčiau. Žiniatinklio naršyklėje eikite į http://yourdomain, arba http://yourip:ir pamatysite "Hello World".

Mūsų programos valdymas naudojant systemd

Dabar, kai apžvelgėme pavyzdinės Koa.js programos kūrimo pagrindus, suprantame, kad gamybinėje aplinkoje paleisti tokią programą, kokia yra dabar, yra nepraktiška. Proceso vadovas tikrai yra reikalavimas. Štai čia ir atsiranda systemd. Paprastais žodžiais tariant, systemd susideda iš programinės įrangos, kuri suteikia Linux sistemos sudedamąsias dalis. Panašiai kaip „init“, ji suteikia sistemą, skirtą valdyti vartotojo procesus po sistemos paleidimo. Mūsų programos atveju systemd leidžia automatiškai paleisti mūsų svetainę po to, kai sistema buvo paleista iš naujo, jei įvyktų įvykis, sutrikdantis sistemos veikimo laiką. Jame taip pat pateikiamas įrankių rinkinys, kuris gali būti naudingas tvarkant mūsų programą. Geriausia yra tai, kad jis yra integruotas į Ubuntu 16.04 LTS, todėl mums nereikia diegti jokios papildomos programinės įrangos.

Sukurti sisteminę paslaugą

Viskas, ko mums reikia norint paleisti programą, bus faile, pavadintame service. Jame yra išsami informacija apie mūsų programą, pvz., jos pavadinimas, katalogas, aplinka ir kt. Norėdami sukurti sistemos failą, atidarykite teksto rengyklę.

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

Redaguokite ir išsaugokite failą taip.

[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

Pakeiskite yourusersavo serverio vartotojo vardu. Štai trumpas svarbių laukų aprašymas:

  • After - Tai informuoja sistemą, kad prieš paleisdami programą palauktų, kol tinklo sąsaja bus paruošta.
  • Environment- Čia galime nurodyti aplinkos kintamuosius mūsų programai. Mūsų Node.js prievadas yra vienas iš jų.
  • Type - Tai informuoja sistemą, kad mūsų programą galima tiesiog paleisti, nesuteikiant vartotojo privilegijų ir pan.
  • User- Tai nurodo sistemai, kad norime paleisti programą naudodami savo vartotojo abonementą, o tai yra rekomenduojama. Paleidus programas kaip root naudotojui, gali kilti daug saugumo problemų.
  • ExecStart - Iš esmės tai yra komanda, kurią systemd paleis, kad paleistumėte programą, panašiai kaip anksčiau ją paleidome rankiniu būdu.
  • Restart- Nurodo sistemai, kokiomis sąlygomis iš naujo paleisti programą. Tokiu atveju norime, kad mūsų svetainė būtų paleista iš naujo, jei įvyktų klaida.

Paleiskite sistemos paslaugą

Dabar esame pasirengę pradėti sisteminę paslaugą.

sudo systemctl daemon-reload

Tai būtina, kai pasikeičia sistemos paslaugos failas, kad sistema užregistruotų visus naujus pakeitimus.

Tada paleiskite paraišką.

sudo systemctl start site

Naršyklėje dar kartą eikite į svetainę ir patikrinkite, ar viskas veikia.

Pagrindinės sistemos valdymo funkcijos

  • stop - Visiškai sustabdo programą.
  • restart - Sustabdo programą ir paleidžia ją iš naujo pagal naują procesą.
  • enable - Nurodo sistemai paleisti programą, kai tik paleidžiate kompiuterį.
  • status - Rodo informaciją apie šiuo metu veikiančią programą, pvz., veikimo laiką, programos būseną ir kt.

Norėdami naudoti bet kurią iš šių funkcijų, atlikite toliau nurodytus veiksmus.

systemctl <function> site

Išvada

Sėkmingai nustatėme Koa.js programą ir išmokome ją pakeisti tarpiniu serveriu, taip pat valdyti su systemd. Dabar esate pasirengę išplėsti savo programą ir remtis šiuo pavyzdžiu. Jei norite sužinoti daugiau apie Koa.js ir daugiau dalykų, kuriuos galite padaryti, apsilankykite jų svetainėje , kur rasite daugiau naudingos informacijos. Be to, jei norite daugiau sužinoti apie systemd procesų tvarkyklę, skaitykite jos dokumentaciją čia . Galiausiai, jei norite sužinoti daugiau apie „Apache“ atvirkštinį tarpinį serverį, nedvejodami peržiūrėkite juos čia .


Įdiekite „Plesk“ „CentOS 7“.

Įdiekite „Plesk“ „CentOS 7“.

Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Įvadas Cacti yra atvirojo kodo stebėjimo ir grafikų sudarymo įrankis, visiškai pagrįstas RRD duomenimis. Naudodami „Cacti“ galite stebėti beveik bet kokio tipo įrenginius

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įvadas „Lets Encrypt“ yra sertifikatų išdavimo tarnyba, siūlanti nemokamus TLS/SSL sertifikatus. Diegimo procesą supaprastina Certbot,

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Naudojate kitą sistemą? Kas yra Tekkit Classic? „Tekkit Classic“ yra visų žinomo ir mėgstamo žaidimo modifikacijų paketas; Minecraft. Jame yra keletas ver

„Debian Wheezy“ nustatykite „iRedMail“.

„Debian Wheezy“ nustatykite „iRedMail“.

Naudojate kitą sistemą? Ši pamoka parodys, kaip įdiegti grupinę programinę įrangą iRedMail naujai įdiegus Debian Wheezy. Turėtumėte naudoti tarnavimą

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Naudojate kitą sistemą? „Jekyll“ yra puiki „WordPress“ alternatyva dienoraščių rašymui ar turinio dalijimuisi. Tam nereikia jokių duomenų bazių ir tai labai paprasta

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Squid yra populiari nemokama „Linux“ programa, leidžianti sukurti persiuntimo žiniatinklio tarpinį serverį. Šiame vadove pamatysite, kaip įdiegti „Squid“ „CentOS“, kad paverstumėte jus

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Įvadas Lighttpd yra „Apache“ šakutė, skirta daug mažiau išteklių imti. Jis yra lengvas, todėl jo pavadinimas ir yra gana paprastas naudoti. Įdiegti

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

1. Virtualmin/Webmin Virtualmin yra galingas ir lankstus interneto prieglobos valdymo skydelis, skirtas Linux ir UNIX sistemoms, pagrįstas gerai žinoma atvirojo kodo žiniatinklio baze

Yii programos nustatymas Ubuntu 14.04

Yii programos nustatymas Ubuntu 14.04

Yii yra PHP sistema, leidžianti greičiau ir lengviau kurti programas. „Yii“ įdiegimas „Ubuntu“ yra nesudėtingas, nes sužinosite tiksliai

Ekrano naudojimas Ubuntu 14.04

Ekrano naudojimas Ubuntu 14.04

Ekranas yra programa, leidžianti kelis kartus naudoti terminalo seansus viename lange. Tai leidžia imituoti kelis terminalo langus, kur tai ma

Logrotate naudojimas žurnalo failams tvarkyti

Logrotate naudojimas žurnalo failams tvarkyti

Įvadas Logrotate yra „Linux“ programa, supaprastinanti žurnalo failų administravimą. Paprastai jis veikia kartą per dieną per cron darbą ir tvarko žurnalų bazę

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

VULTR neseniai atliko pakeitimus, ir dabar viskas turėtų veikti gerai, kai įjungta „NetworkManager“. Jei norite išjungti

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

Icinga2 yra galinga stebėjimo sistema, o kai naudojama pagrindinio kliento modelyje, ji gali pakeisti NRPE pagrįstų stebėjimo patikrų poreikį. Meistras-klientas

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Naudojate kitą sistemą? Mattermost yra atvirojo kodo, savarankiškai priglobta alternatyva Slack SAAS pranešimų paslaugai. Kitaip tariant, naudodami Mattermost, jūs apytiksliai

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i

Leidžia šifruoti Plesk

Leidžia šifruoti Plesk

„Plesk“ valdymo skydelyje yra labai graži „Lets Encrypt“ integracija. „Lets Encrypt“ yra vienas iš vienintelių SSL teikėjų, išduodančių visus sertifikatus

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį