Installera Plesk på CentOS 7
Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser
I den här självstudien kommer du att lära dig hur du ställer in ett komplett RESTful API, som kommer att betjäna HTTP-förfrågningar med Node.js och Express medan du använder omvänd proxy med NGINX, på Ubuntu 16.04 LTS. Vi kommer att använda en applikation som heter Postman, ett mycket välkänt API-utvecklingsverktyg, för att testa vårt API och se till att det är fullt fungerande och fungerar korrekt. Node.js är ett snabbt JavaScript-ramverk för flera plattformar baserat på Chromes V8-motor. Den används i både skrivbords- och serverapplikationer och är känd för sin entrådade hantering av händelseslingor. Vi kommer att använda Node.js som backend för vårt RESTful API, tillsammans med Express.js, vårt ramverk för webbapplikationer byggt för Node.js. Express.js släpps som gratis och öppen programvara. Express är server-side, skriven i JavaScript, och är designad för att bygga API:er, vilket gör det perfekt för vårt projekt. Å andra sidan är Postman en mycket kraftfull HTTP-klient, med API-utveckling i åtanke. Den innehåller alla verktyg du kan tänkas vilja ha för API-utveckling.
Först vill du gå över till Postmans webbplats och ladda ner och installera Postman för din huvuddator (inte din server). Alla installationsinstruktioner kommer att finnas på deras hemsida.
För att börja måste vi först installera Node.js så att vi kan börja utveckla vårt API. Vi kommer att ladda ner och installera Node.js från den officiella webbplatsen.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Dessutom kommer du också att vilja ta tag i de nödvändiga byggverktygen, som kommer att vara till hjälp vid kompilering av moduler.
sudo apt-get install build-essential
För den här handledningen kommer vi att använda LTS-versionen av Node.js, som är version 8.9.3.
Vi kommer att behöva initiera ett nytt Node.js-projekt, som kommer att innehålla en applikation. För att göra det, skapa en ny katalog.
mkdir expressapi
Byt till den nya katalogen. Väl inne, kör npm init
och slutför alla nödvändiga uppmaningar. Notera "ingångspunkten" för din ansökan: du kommer att skapa den här filen senare. När du är klar kommer du att se en package.json
fil i din nuvarande katalog. Den fungerar som en beskrivning av vårt projekt och listar alla beroenden som behövs för att fungera.
Nu kommer vi att konfigurera Express.js och dess beroenden.
npm install express
Installationsprocessen börjar. Det tar några minuter för allt att laddas ner.
Därefter kommer vi att skapa vår huvudsakliga startfil för vårt API. Här kommer du att använda "ingångspunkten" som du såg i package.json
filen. För den här handledningens skull kommer jag att använda standardnamnschemat, index.js
.
touch index.js
Öppna den sedan i nanotextredigeraren.
nano index.js
I vår huvudfil vill vi först anropa alla våra huvudpaket och registrera våra rutter.
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);
Vad vi gör här är att initialisera vår app och ställa in en grundläggande router för vårt API. Observera att vi ställer in vår applikations port till 8080
. Vi kommer att behöva detta nummer när vi konfigurerar vårt RESTful API. Nu är vi redo att gå vidare och testa vårt API.
Kör följande i projektkatalogen.
node <filename>.js
Detta kommer att starta API, där <filename>
är startfilen du angav i package.json
filen. Öppna sedan Postman på din PC/Mac och klicka på New
knappen " " i det övre högra hörnet och klicka sedan på " Request
". När du är där bör du se en stapel som säger " GET
" bredvid den. Här kommer vi att ange vår webbadress för begäran. Skriv bara in följande i avsnittet URL för begäran och klicka på " Send
".
`http://your-server-ip:3000/api`
Du kommer att se " 'API is online'
".
För att hantera rutter kommer vi att använda Express-routern. Om du inte vet vad en router är, är det i huvudsak hur applikationsändpunkter svarar på klientförfrågningar. Här är de rutter vi kommer att sätta upp som exempel:
/api/numbers
- Visar alla nummer från 1-10.
/api/letters
- Visar alla bokstäver från A-Ö.
Nu kommer vi att sätta upp vår första rutt-mellanprogramstruktur, 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 det här exemplet ställer vi upp en situation där en användare kan begära summan av ett tal + 1 genom att ange ordformen för det, med hjälp av GET-metoden. Vi använder router.route()
funktionen för att peka på vilket nummer vi vill skicka tillbaka som ett resultat. Parametrar namnges med ett " :
" framför dem. Vi kommer åt dessa parametrar via req.params
.
Här är ett exempel med bokstäver.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
Vi använder samma metod som ovan, men vi skickar tillbaka brevet med versaler.
NGINX är en välkänd programvara med öppen källkod som används för webbservering, omvända proxyservrar, streaming och mer. Vi kommer att använda NGINX för att omvända proxy för vårt API, för att tillåta oss att köra det på port 80
, eftersom Node.js inte tillåter anslutningar på portar mindre än 1024 utan root-åtkomst. Detta kan vara praktiskt när du länkar din domän till din server.
För att börja installera NGINX måste du köra följande i din terminal och vänta på att installationen är klar.
sudo apt-get install nginx
Därefter vill vi skapa vår webbplatsfil som NGINX kommer att använda för att vända proxy vår app.
sudo nano /etc/nginx/sites-available-api.js
Fyll filen med följande, sedan CTRL+ för Oatt spara 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;
}
}
Genom att använda samma port som vi körde vår applikation på tidigare, säger vi till Nginx att omdirigera alla förfrågningar från vår IP-adress på port 80
till vårt API som körs på port 8080
.
Aktivera sedan omvänd proxy genom att symlinka vår nyskapade fil till sites-available
mappen:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Detta kommer att säkerställa att NGINX kommer att omvända proxy vår API.
När vi har avslutat vår NGINX-konfiguration kommer vi att starta NGINX och sedan starta vårt API. Starta först om NGINX.
sudo systemctl restart nginx
Byt sedan tillbaka till din API-katalog och starta den.
node <filename>.js
Applikationen kommer att köras på port 80
. Kör helt enkelt testet ovanifrån med Postman för att säkerställa att allt fungerar korrekt.
I en produktionsmiljö vill du se till att du har en processhanterare för dina Node-applikationer, för att säkerställa att de körs för alltid i bakgrunden. I den här handledningen kommer vi att använda en processhanterare som heter PM2 (Process Manager 2), som är en processhanterare för Node.js-applikationer som kommer att hålla dem vid liv för alltid med minimal stilleståndstid. PM2 kommer med många användbara hanteringsverktyg, som att stoppa, ladda om, pausa och mer. För att installera PM2, skriv följande och vänta på att den ska installeras.
sudo npm install pm2 -g
När det väl är installerat är allt du behöver göra att se till att du är i projektkatalogen, skriv följande, så startas programmet.
pm2 start <filename>.js
Som nämnts tidigare har PM2 några användbara verktyg som du kan använda för att bättre hantera din applikation.
pm2 stop
- Som namnet antyder låter detta dig stoppa den applikation som körs för närvarande och avbryta dess process. Om din applikation ger ett oväntat resultat kommer det att vara praktiskt att stoppa den.
pm2 list
- Listfunktionen låter dig se alla applikationer som körs för närvarande via PM2, mappade med deras namn. Om du snabbt behöver kontrollera din applikations drifttid bör du använda det här verktyget.
pm2 restart
- Om din applikation fryser av någon anledning och du vill ladda om den, gör pm2 restart just det. Det kommer att döda ansökningsprocessen och starta den igen under en annan process.
pm2 monit
- PM2:s inbyggda monitorverktyg låter dig se en graf över din applikations specifika detaljer, såsom CPU/RAM-användning, i en användarvänlig graf i ncurses-stil. Detta är användbart om du vill ha en visuell bild av din applikations belastning.
Vi har nu slutfört vår uppgift att skapa ett RESTful API, använda Node.js, Express och omvänd proxyservering med NGINX. Utvidga gärna denna handledning. Du kan göra många fantastiska saker med ditt nya API, som att lägga till autentiseringsmetoder, en databas, bättre väg- och felhantering och mycket, mycket mer. Om du har en domän, med en "A"-post redan inställd på din IP-adress, kommer du att kunna komma åt ditt API från din domän. Om du vill lära dig mer om Express.js, besök deras webbplats på http://expressjs.com . För att lära dig mer om NGINX och omvänd proxy, besök http://nginx.com . För att läsa mer om PM2, besök deras sida på http://pm2.keymetrics.io .
Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser
Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst
Introduktion Lets Encrypt är en certifikatmyndighetstjänst som erbjuder gratis TLS/SSL-certifikat. Installationsprocessen förenklas av Certbot,
Använder du ett annat system? Vad är Tekkit Classic? Tekkit Classic är ett modpack för spelet som alla känner och älskar; Minecraft. Den innehåller några av ver
Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve
PHP och relaterade paket är de mest använda komponenterna när du distribuerar en webbserver. I den här artikeln kommer vi att lära oss hur du ställer in PHP 7.0 eller PHP 7.1 o
Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig
Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera
1. Virtualmin/Webmin Virtualmin är en kraftfull och flexibel kontrollpanel för webbhotell för Linux- och UNIX-system baserad på den välkända Open Source-webbasen
Yii är ett PHP-ramverk som låter dig utveckla applikationer snabbare och enklare. Att installera Yii på Ubuntu är enkelt, eftersom du kommer att lära dig exakt
Screen är ett program som tillåter flera terminalsessioner inom ett fönster. Detta låter dig simulera flera terminalfönster där det ma
Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th
Inledning Logrotate är ett Linux-verktyg som förenklar administrationen av loggfiler. Den körs vanligtvis en gång om dagen via ett cron-jobb och hanterar loggbasen
VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera
Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten
Använder du ett annat system? Red5 är en mediaserver med öppen källkod implementerad i Java som låter dig köra Flash fleranvändarapplikationer som livestreamin
I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t
Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög
Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög
Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.
Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.
Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.
Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...
När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.
Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.
Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer