Sett opp Cacti på Debian Jessie
Introduksjon Cacti er et åpen kildekode overvåkings- og grafverktøy som er fullt basert på RRD-data. Gjennom Cacti kan du overvåke nesten alle typer enheter
I denne opplæringen lærer du hvordan du setter opp et komplett RESTful API, som vil betjene HTTP-forespørsler ved å bruke Node.js og Express mens du gir det omvendt proxy med NGINX, på Ubuntu 16.04 LTS. Vi vil bruke en applikasjon som heter Postman, et veldig kjent API-utviklingsverktøy, for å teste API-et vårt og sørge for at det er fullt funksjonelt og fungerer som det skal. Node.js er et raskt JavaScript-rammeverk på tvers av plattformer basert på Chromes V8-motor. Den brukes i både skrivebords- og serverapplikasjoner og er kjent for sin entrådede hendelsesløkkehåndtering. Vi kommer til å bruke Node.js som backend for RESTful API, sammen med Express.js, vårt nettapplikasjonsrammeverk bygget for Node.js. Express.js er utgitt som gratis og åpen programvare. Express er server-side, skrevet i JavaScript, og er designet for å bygge APIer, noe som gjør det perfekt for prosjektet vårt. På den annen side er Postman en veldig kraftig HTTP-klient, med API-utvikling i tankene. Den inneholder alle verktøyene du kan ønske deg for API-utvikling.
Først vil du gå over til Postmans nettsted og laste ned og installere Postman for hoved-PCen din (ikke serveren din). Alle installasjonsinstruksjoner vil være på nettsiden deres.
For å begynne, må vi først installere Node.js slik at vi kan begynne å utvikle API-en vår. Vi vil laste ned og installere Node.js fra den offisielle nettsiden.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
I tillegg vil du også ønske å ta tak i de nødvendige byggeverktøyene, som vil være nyttige for å kompilere moduler.
sudo apt-get install build-essential
For denne opplæringen vil vi bruke LTS-versjonen av Node.js, som er versjon 8.9.3.
Vi må initialisere et nytt Node.js-prosjekt, som vil inneholde en applikasjon. For å gjøre det, opprette en ny katalog.
mkdir expressapi
Bytt til den nye katalogen. Når du er inne, kjør npm init
og fullfør alle nødvendige instruksjoner. Vær oppmerksom på "inngangspunktet" for søknaden din: du vil lage denne filen senere. Når du er ferdig, vil du se en package.json
fil i din nåværende katalog. Den fungerer som en beskrivelse av prosjektet vårt, og viser alle avhengighetene som trengs for å fungere.
Nå skal vi konfigurere Express.js og dets avhengigheter.
npm install express
Installasjonsprosessen vil begynne. Det vil ta noen minutter før alt er lastet ned.
Deretter vil vi lage vår hovedstartfil for API-en vår. Her skal du bruke "inngangspunktet" du så i package.json
filen. Av hensyn til denne opplæringen vil jeg bruke standard navneskjema, index.js
.
touch index.js
Deretter åpner du den i nanotekstredigereren.
nano index.js
I hovedfilen vår ønsker vi først å ringe alle våre hovedpakker og registrere våre ruter.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
const router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'API is Online!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);
Det vi gjør her er å initialisere appen vår og sette opp en grunnleggende ruter for API-en vår. Merk at vi setter applikasjonens port til 8080
. Vi trenger dette nummeret når vi konfigurerer RESTful API. Nå er vi klare til å gå videre og teste API-en vår.
Kjør følgende i prosjektkatalogen.
node <filename>.js
Dette vil starte APIen, hvor <filename>
er startfilen du spesifiserte i package.json
filen. Åpne deretter Postman på din PC/Mac, og klikk på " New
"-knappen øverst i høyre hjørne, og klikk deretter på " Request
". Når du er der, bør du se en stolpe som sier " GET
" ved siden av den. Her vil vi legge inn vår forespørsels-URL. Bare skriv inn følgende i forespørsels-URL-delen og klikk på " Send
".
`http://your-server-ip:3000/api`
Du vil se " 'API is online'
".
For å håndtere ruter vil vi bruke Express-ruteren. Hvis du ikke vet hva en ruter er, er det i hovedsak hvordan applikasjonsendepunkter reagerer på klientforespørsler. Her er rutene vi skal sette opp som eksempel:
/api/numbers
- Viser alle tall fra 1-10.
/api/letters
- Viser alle bokstaver fra AZ.
Nå skal vi sette opp vår første rutemellomvarestruktur, som så.
router.use(function(req, res, next) {
console.log('We've got something.');
next() //calls next middleware in the application.
});
router.route('/numbers/:number').get((req, res) => {
res.json({result: req.params.number + 1})
});
I dette eksemplet setter vi opp en situasjon der en bruker kan be om summen av et tall + 1 ved å oppgi ordformen til det, ved å bruke GET-metoden. Vi bruker router.route()
funksjonen til å peke på hvilket nummer vi ønsker å sende tilbake som resultat. Parametre er navngitt med en " :
" foran dem. Vi får tilgang til disse parameterne via req.params
.
Her er et eksempel med bokstaver.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
Vi bruker samme metode som ovenfor, men vi sender tilbake brevet med stor forbokstav.
NGINX er en velkjent åpen kildekode-programvare som brukes til webservering, omvendte proxyer, streaming og mer. Vi vil bruke NGINX for å reversere proxy-serveren vår for å la oss kjøre den på port 80
, fordi Node.js ikke tillater tilkoblinger på porter mindre enn 1024 uten root-tilgang. Dette kan være nyttig når du kobler domenet til serveren din.
For å begynne å installere NGINX må du kjøre følgende i terminalen din og vente til installasjonen er fullført.
sudo apt-get install nginx
Deretter vil vi lage nettstedsfilen vår som NGINX vil bruke til å reversere proxy-serveren vår.
sudo nano /etc/nginx/sites-available-api.js
Fyll filen med følgende, og deretter CTRL+ for Oå lagre den.
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:8080/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
Ved å bruke den samme porten som vi kjørte applikasjonen vår på tidligere, ber vi Nginx om å omdirigere alle forespørsler fra IP-adressen vår på porten 80
til API-en vår som kjører på port 8080
.
Deretter aktiverer du omvendt proxy ved å symlinke vår nyopprettede fil til sites-available
mappen:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Dette vil sikre at NGINX vil reversere proxy vår API.
Når vi har fullført NGINX-konfigurasjonen, starter vi NGINX, og starter deretter API-en vår. Start først NGINX på nytt.
sudo systemctl restart nginx
Bytt deretter tilbake til API-katalogen og start den.
node <filename>.js
Applikasjonen vil kjøre på port 80
. Bare kjør testen ovenfra med Postman, for å sikre at alt fungerer som det skal.
I et produksjonsmiljø vil du sørge for at du har en prosessleder for Node-applikasjonene dine, for å sikre at de forblir i gang for alltid i bakgrunnen. I denne opplæringen vil vi bruke en prosessbehandler kalt PM2 (Process Manager 2), som er en prosessbehandler for Node.js-applikasjoner som vil holde dem i live for alltid med minimal nedetid. PM2 kommer med mange nyttige administrasjonsverktøy, som å stoppe, laste på nytt, sette på pause og mer. For å installere PM2, skriv inn følgende og vent til den installeres.
sudo npm install pm2 -g
Når den er installert, er alt du trenger å gjøre å sørge for at du er i prosjektkatalogen, skriv inn følgende, og applikasjonen vil starte.
pm2 start <filename>.js
Som nevnt tidligere har PM2 noen nyttige verktøy som du kan bruke for å bedre administrere applikasjonen din.
pm2 stop
- Som navnet antyder, lar dette deg stoppe programmet som kjører for øyeblikket, og drepe prosessen. Hvis applikasjonen din gir et uventet resultat, vil det være nyttig å stoppe den.
pm2 list
- Listefunksjonen lar deg se alle applikasjonene som kjører for øyeblikket via PM2, kartlagt etter navnene deres. Hvis du raskt trenger å sjekke programmets oppetid, bør du bruke dette verktøyet.
pm2 restart
- Hvis applikasjonen din fryser av en eller annen grunn, og du ønsker å laste den på nytt, gjør pm2 restart nettopp det. Det vil drepe søknadsprosessen og starte den på nytt under en annen prosess.
pm2 monit
- PM2s innebygde monitorverktøy lar deg se en graf over applikasjonens spesifikke detaljer, for eksempel CPU/RAM-bruk, i en brukervennlig graf i ncurses-stil. Dette er nyttig hvis du vil ha et visuelt bilde av applikasjonens belastning.
Vi har nå fullført oppgaven vår med å lage en RESTful API, ved å bruke Node.js, Express, og omvendt proxying med NGINX. Utvid gjerne denne opplæringen. Du kan gjøre mange flotte ting med din nye API, for eksempel legge til autentiseringsmetoder, en database, bedre rute- og feilhåndtering og mye, mye mer. Hvis du har et domene, med en "A"-oppføring allerede satt opp til IP-adressen din, vil du kunne få tilgang til APIen din fra domenet ditt. Hvis du vil lære mer om Express.js, kan du besøke nettstedet deres på http://expressjs.com . For å lære mer om NGINX og omvendt proxying, besøk http://nginx.com . For å lese mer om PM2, besøk siden deres på http://pm2.keymetrics.io .
Introduksjon Cacti er et åpen kildekode overvåkings- og grafverktøy som er fullt basert på RRD-data. Gjennom Cacti kan du overvåke nesten alle typer enheter
Introduksjon Lets Encrypt er en sertifikatmyndighetstjeneste som tilbyr gratis TLS/SSL-sertifikater. Installasjonsprosessen forenkles av Certbot,
Bruker du et annet system? Denne opplæringen viser deg hvordan du installerer gruppevaren iRedMail på en ny installasjon av Debian Wheezy. Du bør bruke en serve
1. Virtualmin/Webmin Virtualmin er et kraftig og fleksibelt kontrollpanel for webhotell for Linux- og UNIX-systemer basert på den velkjente Open Source-nettbasen
Skjerm er et program som tillater flere bruk av terminalsesjoner i ett vindu. Dette lar deg simulere flere terminalvinduer der det ma
Introduksjon Logrotate er et Linux-verktøy som forenkler administrasjonen av loggfiler. Den kjører vanligvis en gang om dagen via en cron-jobb, og administrerer loggbasen
Bruker du et annet system? Docker er en applikasjon som gjør det mulig å distribuere programmer som kjøres som containere. Det ble skrevet i det populære Go-programmet
Hva er Dirty Cow (CVE-2016-5195)? Dirty Cow-sårbarheten utnyttes gjennom hvordan Linux behandler kode. Det gjør det mulig for en uprivilegert bruker å gai
Å ha bare én bruker, som er root, kan være farlig. Så la oss fikse det. Vultr gir oss friheten til å gjøre som vi vil med våre brukere og våre servere
Adminer er et lett alternativ til phpMyAdmin. Til sammenligning er dens totale pakkestørrelse 400 KB, mot 4,2 MB med phpMyAdmin. I motsetning til phpMyAdmin, som
Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller
Denne artikkelen er en del av en todelt serie om installasjon og konfigurering av Nagios på Ubuntu 14.04. Del 1: Nagios Server Del 2: Oversikt over ekstern vert Nagio
Vultr-servere kan ikke distribueres med tidssonen/datoen/klokkeslettet du trenger på serveren din. Heldigvis kan vi manuelt stille inn tidssonen for å forhindre problemer
Denne artikkelen vil lede deg gjennom distribusjon av Meteor-appen din til en Vultr VPS som kjører Ubuntu 14.04. Det kan også fungere på andre Linux-distribusjoner (forsøk a
Introduksjon Linux-funksjoner er spesielle attributter i Linux-kjernen som gir prosesser og binære kjørbare spesifikke rettigheter som er normale
Noen arkitekturer med høy tilgjengelighet krever en flytende IP-adresse. Denne funksjonaliteten er tilgjengelig på Vultr-plattformen når privat nettverk har bee
Innledning Enkelte scenarier krever at du oppretter brukere med lese- og skrivetilgang til en enkelt katalog kun via FTP. Denne artikkelen vil vise deg hvordan t
Node.js-applikasjoner er populære for deres evne til å skalere. Å kjøre flere samtidige prosesser på flere servere gir lavere ventetid og større oppetid
Bruker du et annet system? LibreNMS er et fullverdig åpen kildekode-nettverksovervåkingssystem. Den bruker SNMP for å hente data fra forskjellige enheter. En variant
For DHCP-brukere kan det hende du trenger å redigere /etc/resolv.conf for å bruke andre navneservere. Deretter, etter en periode (eller etter en omstart av systemet)
Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.
Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.
Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.
Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.
Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...
Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.
Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.
Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.
I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.
Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer