Како подесити Коа.јс Ноде апликацију на Убунту 16.04 ЛТС

У овом водичу ћемо научити како да подесимо Коа.јс веб апликацију за производњу, користећи Ноде.јс. Такође ћемо повезати узорак домена, са обрнутим проксијем, користећи Апацхе, и научити како да њиме управљамо помоћу одговарајућег менаџера процеса. Без даљег одлагања, хајде да почнемо.

Кратак опис Ноде.јс, Коа.јс и Апацхе

Ноде.јс је брз, вишеплатформски ЈаваСцрипт оквир заснован на Цхроме-овом В8 мотору. Користи се и у десктоп и у серверским апликацијама и познат је по руковању петљи са једним навојем. Ноде.јс садржи регистар пакета који се зове Ноде Пацкаге Манагер (НПМ), који угошћује преко пола милиона пакета. НПМ пакети (или модули) су основна окосница Ноде.јс-а, јер су код вођен заједнице који може бити користан у вашој Ноде.јс апликацији. У нашој апликацији Коа.јс, Ноде.јс је кључни део њене функције.

Коа.јс је минималистички веб оквир, изграђен на платформи Ноде.јс. Направљен од стране истог тима који стоји иза популарног Екпресс.јс оквира, његов циљ је да додатно минимизира већ минималистички Екпресс.јс оквир искључивањем међувера из његовог језгра. Главна карактеристика Коа.јс-а је чињеница да нема повратних позива. Коа.јс је изграђен на ЕС6 базираним генераторима и ЕС6 функцијама, као што је Промисес.

Апацхе је популаран веб сервер отвореног кода, који се користи као основна полазна тачка за веб сервере. У овом водичу ћемо користити Апацхе као обрнути прокси, што ће нам омогућити да повежемо нашу апликацију са узорком домена. Ако немате домен, овај водич ће и даље радити за вас, са једином разликом што ће веб локација радити на вашем ВПС ИП-у, уместо на домену.

Подешавање Ноде.јс

Као и са било којим Ноде.јс фрамеворк-ом, мораћете да инсталирате Ноде.јс на свој ВПС. Зарад овог упутства, претпоставићу да већ имате инсталиран Ноде.јс на вашем систему. Ако не, можете једноставно пратити упутства овде .

Подешавање нашег директоријума апликација

Мораћемо да креирамо фасциклу, која ће садржати основне датотеке наше апликације.

mkdir site

Слободно замените siteбило којим другим именом које желите за именик. Затим ћемо морати да иницијализујемо нашу датотеку пакета Ноде.јс. Пређите у директоријум који сте управо креирали, покрените npm initи довршите упите. На крају би требало да изгледа отприлике овако:

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

Инсталирање Коа.јс

Сада када смо поставили наш директоријум, можемо да наставимо са инсталацијом Коа.јс. У тренутном радном директоријуму /site, откуцајте следеће.

npm install koa

Ово ће преузети модул Коа.јс са НПМ-а и инсталирати га у наш директоријум пројекта за будућу употребу. Затим ћемо креирати нашу датотеку узорка апликације која ће садржати наш код апликације. Да бисте то урадили, креирајте index.jsдатотеку.

nano index.js

Када уђете у датотеку, направите узорак апликације.

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

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

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

Сачувајте и затворите датотеку. CTRL+ X.

Желећемо да будемо сигурни да наша апликација ради исправно. Да бисте га покренули, покрените node index.js, и видећете Website is liveу конзоли.

Инсталирање Апацхе-а

Сада када знамо да је наша веб локација функционална, можемо да наставимо да инсталирамо Апацхе и његове зависности.

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

Да бисмо користили функцију обрнутог проксија која се налази у Апацхе-у, мораћемо да омогућимо потребне модуле.

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

Неки од ових модула су можда већ били омогућени, али увек је добро да их још једном проверите.

Сада морамо да уредимо подразумевану конфигурациону датотеку за Апацхе.

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

Овде ћемо морати да додамо блок за нашу апликацију.

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

    ServerName localhost
</VirtualHost>

Сачувајте датотеку, CTRL+ X.

Можда ћете приметити да користимо порт 3000као порт за наш ProxyPassи ProxyPassReverseИП. Пошто је то исти порт на којем покрећемо нашу Коа.јс апликацију, императив је да унесемо исправан порт.

Када промене буду на месту, мораћемо да поново покренемо Апацхе и поново покренемо нашу Коа.јс апликацију.

sudo systemctl restart apache2

Ово ће осигурати да је наша конфигурациона датотека активна и спремна за рад када покренемо нашу Коа.јс апликацију. Када се Апацхе поново покрене, вратите се до директоријума ваше веб локације и покрените Коа.јс апликацију као што смо раније радили. Из вашег веб претраживача идите на http://yourdomainили http://yourip:, и видећете „Здраво, свет“.

Управљање нашом апликацијом помоћу системд-а

Сада када смо покрили основе креирања узорка Коа.јс апликације, схватамо да је у производном окружењу покретање апликације као што смо сада непрактично. Менаџер процеса је дефинитивно услов. Ту системд долази у игру. Једноставно речено, системд се састоји од софтвера који обезбеђује градивне блокове за Линук систем. Слично као "инит", обезбеђује систем за управљање корисничким процесима након покретања система. У случају наше апликације, системд нам омогућава да аутоматски покренемо нашу веб локацију након што се систем поново покрене, у случају да дође до догађаја који поремети рад система. Такође пружа скуп алата који могу бити од користи приликом управљања нашом апликацијом. Најбољи део је чињеница да је уграђен у Убунту 16.04 ЛТС, тако да не морамо да инсталирамо никакав додатни софтвер.

Креирајте системски сервис

Све што нам је потребно да покренемо нашу апликацију биће садржано у датотеци под називом service. Садржи детаље о нашој апликацији, као што су њено име, директоријум, окружење и још много тога. Да бисте креирали наш системски фајл, отворите уређивач текста.

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

Уредите и сачувајте датотеку овако.

[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

Замените youruserкорисничким именом вашег сервера. Ево кратког прегледа важних поља:

  • After - Ово обавештава системд да сачека док мрежни интерфејс не буде спреман пре него што покрене нашу апликацију.
  • Environment- Овде можемо одредити променљиве окружења за нашу апликацију. Наш Ноде.јс порт је један од њих.
  • Type - Ово информише системд да се наша апликација може само покренути, без раздвајања корисничких привилегија и слично.
  • User- Ово говори системд-у да желимо да покренемо апликацију под нашим корисничким налогом, што се препоручује. Покретање апликација као роот корисник може довести до многих безбедносних компромиса.
  • ExecStart - У суштини команда коју ће системд покренути да покрене нашу апликацију, слично као што смо је раније покретали ручно.
  • Restart- Говори системд-у под којим условима да поново покрене нашу апликацију. У овом случају желимо да се наша веб локација поново покрене у случају грешке.

Покрените системд услугу

Сада смо спремни да покренемо нашу системд услугу.

sudo systemctl daemon-reload

Ово је неопходно кад год се системски фајл сервиса промени да би системд регистровао све нове промене.

Затим покрените апликацију.

sudo systemctl start site

Идите до сајта у свом претраживачу још једном да бисте проверили да ли све ради.

Кључне системске функције управљања

  • stop - Потпуно зауставља апликацију.
  • restart - Зауставља апликацију и поново је покреће под новим процесом.
  • enable - Каже системд-у да покрене апликацију сваки пут када покренете рачунар.
  • status - Приказује информације о тренутно покренутој апликацији, као што су време рада, стање апликације и још много тога.

Да бисте користили било коју од ових функција, покрените следеће.

systemctl <function> site

Закључак

Успешно смо поставили Коа.јс апликацију и научили како да је поништимо, као и да управљамо њоме помоћу системд-а. Сада сте спремни да проширите своју апликацију и надоградите овај пример. Ако желите да сазнате више о Коа.јс-у и више ствари са којима можете да урадите, посетите њихову веб локацију за више корисних информација. Поред тога, ако желите да сазнате више о Системд-овом менаџеру процеса, прочитајте документацију за њега овде . Коначно, ако желите да сазнате више о Апацхе-овом обрнутом проксију, слободно их погледајте овде .


Инсталирајте Плеск на ЦентОС 7

Инсталирајте Плеск на ЦентОС 7

Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података

Подесите Цацти на Дебиан Јессие

Подесите Цацти на Дебиан Јессие

Увод Цацти је алатка отвореног кода за праћење и графику која је у потпуности заснована на РРД подацима. Преко Цацтуса можете надгледати скоро сваку врсту уређаја

Инсталирајте Летс Енцрипт ССЛ на ВордПресс апликацију једним кликом

Инсталирајте Летс Енцрипт ССЛ на ВордПресс апликацију једним кликом

Увод Летс Енцрипт је услуга ауторитета за сертификате која нуди бесплатне ТЛС/ССЛ сертификате. Цертбот поједностављује процес инсталације,

Подесите иРедМаил на Дебиан Вхеези

Подесите иРедМаил на Дебиан Вхеези

Користите другачији систем? Овај водич ће вам показати како да инсталирате групни софтвер иРедМаил на нову инсталацију Дебиан Вхеези-а. Требало би да користите сервис

Креирање Јекилл блога на Убунту 16.04

Креирање Јекилл блога на Убунту 16.04

Користите другачији систем? Јекилл је одлична алтернатива ВордПресс-у за блоговање или дељење садржаја. Не захтева никакве базе података и веома је лако и

Како подесити надоградње без надзора на Дебиан 9 (протежу)

Како подесити надоградње без надзора на Дебиан 9 (протежу)

Користите другачији систем? Ако купите Дебиан сервер, увек би требало да имате најновије безбедносне закрпе и ажурирања, без обзира да ли спавате или не

Како инсталирати и конфигурисати ПХП 7.0 или ПХП 7.1 на Убунту 16.04

Како инсталирати и конфигурисати ПХП 7.0 или ПХП 7.1 на Убунту 16.04

ПХП и повезани пакети су најчешће коришћене компоненте приликом постављања веб сервера. У овом чланку ћемо научити како да подесите ПХП 7.0 или ПХП 7.1 о

Како инсталирати Скуид проки на ЦентОС

Како инсталирати Скуид проки на ЦентОС

Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин

Три бесплатна контролна панела сервера (брза инсталација)

Три бесплатна контролна панела сервера (брза инсталација)

1. Виртуалмин/Вебмин Виртуалмин је моћна и флексибилна контролна табла за веб хостинг за Линук и УНИКС системе заснована на добро познатој веб бази отвореног кода

Подешавање Иии апликације на Убунту 14.04

Подешавање Иии апликације на Убунту 14.04

Иии је ПХП оквир који вам омогућава да брже и лакше развијате апликације. Инсталирање Иии-а на Убунту је једноставно, као што ћете тачно научити

Коришћење екрана на Убунту 14.04

Коришћење екрана на Убунту 14.04

Сцреен је апликација која омогућава вишеструку употребу терминалских сесија унутар једног прозора. Ово вам омогућава да симулирате више прозора терминала где је ма

Подесите сопствени ДНС сервер на Дебиан/Убунту

Подесите сопствени ДНС сервер на Дебиан/Убунту

Овај водич објашњава како да подесите ДНС сервер користећи Бинд9 на Дебиан-у или Убунту-у. У целом чланку замените иоур-домаин-наме.цом у складу са тим. Ат тх

Коришћење Логротате за управљање датотекама евиденције

Коришћење Логротате за управљање датотекама евиденције

Увод Логротате је Линук услужни програм који поједностављује администрацију датотека евиденције. Обично се покреће једном дневно преко црон посла и управља базом евиденције

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент

Подесите Ред5 Медиа Сервер на Убунту 16.04

Подесите Ред5 Медиа Сервер на Убунту 16.04

Користите другачији систем? Ред5 је медијски сервер отвореног кода имплементиран у Јави који вам омогућава да покренете Фласх вишекорисничке апликације као што је ливе стреамин

Компајлирајте и инсталирајте Нгинк са модулом ПагеСпеед на Дебиан 8

Компајлирајте и инсталирајте Нгинк са модулом ПагеСпеед на Дебиан 8

У овом чланку ћемо видети како да компајлирате и инсталирате Нгинк маинлине из званичних извора Нгинк-а помоћу модула ПагеСпеед, који вам омогућава да

Како инсталирати Апацхе Цассандра 3.11.к на Убунту 16.04 ЛТС

Како инсталирати Апацхе Цассандра 3.11.к на Убунту 16.04 ЛТС

Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу

Како инсталирати Ванилла Форум на Убунту 16.04

Како инсталирати Ванилла Форум на Убунту 16.04

Користите другачији систем? Ванилла форум је апликација отвореног кода написана у ПХП-у. Потпуно је прилагодљив, једноставан за коришћење и подржава екстерне

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више