Εγκατάσταση του Node.js
Ρύθμιση καταλόγου εφαρμογών
Εγκατάσταση του Hapi.js
Ρύθμιση του δείγματος της εφαρμογής μας
Εγκαταστήστε το Nginx
Διαμόρφωση Nginx
Εγκαταστήστε το PM2
Ξεκινώντας την εφαρμογή μας με PM2
συμπέρασμα
Το Hapi.js είναι ένα πλούσιο, ισχυρό και ισχυρό πλαίσιο Node.js που έχει σχεδιαστεί για τη δημιουργία εφαρμογών ιστού στο οικοσύστημα Node.js. Ο απλός σχεδιασμός του καθιστά εύκολο να ξεκινήσετε. Η Hapi χρησιμοποιεί πολλές από τις πιο πρόσφατες λειτουργίες JavaScript ES6 στον πυρήνα της, όπως τις υποσχέσεις ES6. Για όσους από εσάς έχετε χρησιμοποιήσει το Express στο παρελθόν, το Hapi σάς επιτρέπει να δοκιμάσετε κάτι νέο και να απολαύσετε όλες τις πιο πρόσφατες λειτουργίες JavaScript.
Σε αυτό το σεμινάριο, στόχος μας θα είναι να δημιουργήσουμε μια βασική ιστοσελίδα Hapi.js, η οποία φιλοξενείται από το Vultr VPS μας, στο Ubuntu 16.04 LTS. Για όσους έχουν έναν τομέα για τον ιστότοπό τους, θα χρησιμοποιήσουμε έναν αντίστροφο διακομιστή μεσολάβησης για να συνδέσουμε τον τομέα μας με τον ιστότοπό μας. Τέλος, θα μάθουμε πώς να το διαχειριζόμαστε με έναν διαχειριστή διαδικασίας. Τώρα που το έχουμε ξεμπερδέψει, ας ξεκινήσουμε.
Εγκατάσταση του Node.js
Θα χρειαστεί να εγκαταστήσουμε το Node.js. Για να το κάνετε στο Ubuntu 16.04 LTS, ακολουθήστε αυτές τις οδηγίες.
Προσθήκη του Αποθετηρίου
Θα χρειαστεί να προσθέσουμε το αποθετήριο NodeSource APT, το οποίο περιέχει την πιο πρόσφατη έκδοση LTS του Node.js.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Κάνουμε λήψη ενός σεναρίου που θα χρησιμοποιήσουμε για να προσθέσουμε το αποθετήριο στη λίστα πηγών μας, καθώς και για την εγκατάσταση του Node.js από το αποθετήριο NodeSource.
Εγκατάσταση εργαλείων κατασκευής
Εκτός από την εγκατάσταση του ίδιου του Node.js, θα χρειαστεί επίσης να εγκαταστήσουμε ορισμένα απαραίτητα εργαλεία κατασκευής, τα οποία θα βοηθήσουν στη δημιουργία οποιωνδήποτε λειτουργικών μονάδων που μπορεί να χρειαστεί να εγκαταστήσουμε.
sudo apt-get install -y build-essential
Αυτό απλά κατεβάζει και εγκαθιστά τα εργαλεία κατασκευής από το αποθετήριο.
Ρύθμιση καταλόγου εφαρμογών
Είναι καλή πρακτική να ορίσουμε έναν φάκελο που θα χρησιμοποιήσουμε για την εφαρμογή μας, ο οποίος θα περιέχει όλα τα δεδομένα της εφαρμογής μας, όπως αρχεία διαμόρφωσης και σενάρια εκκίνησης. Δημιουργήστε ένα φάκελο, ονομάζοντάς τον όπως θέλετε. Για χάρη αυτού του σεμιναρίου, θα υποθέσω ότι το ονομάσατε site.
mkdir site
Αφού δημιουργήσετε τον φάκελο, τώρα μπορούμε να τον αλλάξουμε. Βεβαιωθείτε ότι βρίσκεστε στον κατάλογο που μόλις δημιουργήσατε, ξεκινήστε τον οδηγό πακέτου NPM.
npm init
Θα σας ζητήσει να εισαγάγετε μερικά διαφορετικά πράγματα, όπως το όνομα της αίτησής σας, το αρχείο έναρξης, την άδεια χρήσης και ούτω καθεξής. Τα περισσότερα πεδία μπορείτε να αφήσετε προεπιλεγμένα, εκτός από τα πιο προφανή πεδία, όπως το όνομα της εφαρμογής σας. Στο τέλος, θα μοιάζει με αυτό:
{
"name": "site",
"version": "1.0.0",
"description": "Hapi.js site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "rich",
"license": "MIT"
}
Μόλις είστε ικανοποιημένοι με το αποτέλεσμα, κάντε κλικ ENTERγια να αποθηκεύσετε το αρχείο.
Εγκατάσταση του Hapi.js
Τώρα που ο κατάλογός σας έχει κατασκευαστεί με επιτυχία, μπορούμε τώρα να προχωρήσουμε στην εγκατάσταση του Hapi.js. Όπως αναφέρθηκε προηγουμένως, θα χρησιμοποιήσουμε το NPM για τη λήψη του Hapi.js, καθώς και των εξαρτήσεών του, για το έργο μας. Στον κατάλογο του έργου, εκτελέστε τα εξής.
npm install hapi.js
Αυτό κατεβάζει το Hapi.js από το NPM και το εγκαθιστά στον κατάλογο του έργου μας. Στην ίδια εκτέλεση, οποιεσδήποτε εξαρτήσεις στις οποίες μπορεί να βασίζεται το Hapi.js πραγματοποιούνται επίσης λήψη για διευκόλυνσή μας.
Ρύθμιση του δείγματος της εφαρμογής μας
Τώρα είναι ώρα να ρυθμίσουμε το βασικό μας αρχείο εφαρμογής Hapi.js. Αυτό θα περιέχει όλο τον κωδικό μας για την εφαρμογή. Πιο κάτω, μπορούμε να επεκτείνουμε τον κώδικα της εφαρμογής μας και να προσθέσουμε περισσότερα πράγματα σε αυτόν, όπως μας βολεύει.
Στη συνέχεια, θα δημιουργήσουμε το αρχικό μας αρχείο. Ανατρέξτε πίσω στην mainενότητα του package.jsonαρχείου σας , για να προσδιορίσετε ακριβώς πώς να ονομάσετε το αρχείο. Εφόσον χρησιμοποίησα το προεπιλεγμένο σχήμα ονοματοδοσίας, το αρχείο μας θα ονομάζεται index.js.
nano index.js
Μόλις εισέλθετε στο πρόγραμμα επεξεργασίας κειμένου nano, δημιουργήστε τον βασικό κώδικα της εφαρμογής σας, όπως κι έτσι.
const Hapi=require('hapi');
const server=Hapi.server({
host:'localhost',
port: 3000
});
server.route({
method:'GET',
path:'/',
handler:((request,h)) => {
return 'Sample Hapi.js Application';
}
});
async function start() {
try {
await server.start();
} catch (err) {
console.log(err);
process.exit(1);
}
console.log(`Our server is running! ${server.info.uri}`);
};
start();
Αρχικά, εισάγουμε τη μονάδα Hapi. Στη συνέχεια, αρχικοποιούμε τον κατασκευαστή του διακομιστή μας, ο οποίος περιέχει τον κεντρικό υπολογιστή στον οποίο θέλουμε να τρέξουμε τον διακομιστή, καθώς και τη θύρα, που είναι 3000για αυτό το σεμινάριο. Στη συνέχεια, ρυθμίζουμε έναν βασικό δρομολογητή, ο οποίος υποδεικνύει ότι κάθε φορά που κάποιος επισκέπτεται τον ιστότοπο, θα τον υποδεχόμαστε με ένα απλό μήνυμα. Για να τα ολοκληρώσουμε, έχουμε μια λειτουργία async, για την εκκίνηση του διακομιστή μας, ο οποίος θα συνδεθεί στην κονσόλα που εκτελεί ο διακομιστής μας. Όταν τελειώσετε, αποθηκεύστε και κλείστε το αρχείο ( CTRL+ X)
Τώρα που έχει ρυθμιστεί το κύριο αρχείο μας, είμαστε έτοιμοι να ξεκινήσουμε την εφαρμογή μας.
node index.js
Εάν δείτε " Our server is running!" στην κονσόλα, τότε ο διακομιστής ξεκίνησε με επιτυχία.
Εγκαταστήστε το Nginx
Δεδομένου ότι το Nginx είναι διαθέσιμο στα προεπιλεγμένα αποθετήρια του Ubuntu, η εγκατάσταση είναι απλή. Απλώς ενημερώστε τις λίστες πακέτων σας και εγκαταστήστε το.
sudo apt update
sudo apt install nginx -y
Μετά την ανανέωση των λιστών πακέτων, το Nginx και οι εξαρτήσεις του θα εγκατασταθούν.
Για να μπορέσει το Nginx να αντιστρέψει το διακομιστή μεσολάβησης την εφαρμογή μας, θα χρειαστεί να δημιουργήσουμε ένα αρχείο διαμόρφωσης. Αυτό το αρχείο διαμόρφωσης θα περιέχει πληροφορίες σχετικά με την εφαρμογή μας, τις οποίες θα χρησιμοποιήσει το Nginx για τον αντίστροφο διακομιστή μεσολάβησης.
Διαγράψτε την προεπιλεγμένη διαμόρφωση που δημιούργησε το Nginx, καθώς θα την αντικαταστήσουμε με τη δική μας αργότερα.
sudo rm /etc/nginx/sites-enabled/default
Δημιουργήστε ένα νέο αρχείο στο sites-availableφάκελο. Όσο για την ονομασία, μπορούμε να παραμείνουμε απλά site, για απλότητα.
sudo nano /etc/nginx/sites-available/site
Στο αρχείο, επικολλήστε τα παρακάτω και αποθηκεύστε.
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:3000/;
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;
}
}
Σε αυτό το αρχείο, λέμε στο Nginx να ακούει στη θύρα 80. Επίσης, ορίζουμε τη διέλευση του διακομιστή μεσολάβησης στη localhostδιεύθυνση και τη θύρα 3000, η οποία είναι η ίδια θύρα με την εφαρμογή μας Hapi.
Τώρα μπορείτε να επιστρέψετε στον κατάλογο της εφαρμογής σας και να ξεκινήσετε τον ιστότοπο. Μόλις ξεκινήσει ο ιστότοπος, απλώς μεταβείτε στο http://yourdomain.comή http://yourip, και θα δείτε το κείμενο " Hello World".
Εγκαταστήστε το PM2
Το PM2 μπορεί να βρεθεί στο αποθετήριο NPM και μπορείτε να το εγκαταστήσετε καθολικά για να είναι προσβάσιμο από οπουδήποτε, όπως έτσι.
sudo npm install pm2 -g
Η -gσημαία στο τέλος υποδεικνύει ότι θέλουμε να εγκαταστήσουμε τη λειτουργική μονάδα στον φάκελο καθολικών λειτουργικών μονάδων, που θα μας επιτρέψει να τη χρησιμοποιήσουμε εκτός του καταλόγου του έργου μας. Αυτό χρησιμοποιείται προκειμένου το έργο μας να συμπεριφέρεται σαν μια κανονική εφαρμογή συστήματος.
Ξεκινώντας την εφαρμογή μας με PM2
Αφού εγκαταστήσετε το PM2, μεταβείτε στον κατάλογο του έργου σας. Η σύνταξη για την έναρξη της εφαρμογής μας θα είναι ελαφρώς διαφορετική τώρα. Έτσι θα το κάνουμε με τα PM2.
pm2 start index.js --name site
Χρησιμοποιούμε τη συνάρτηση έναρξης PM2, η οποία ουσιαστικά δημιουργεί ένα προφίλ για την εφαρμογή μας, με το όνομα site. Μετά την εκτέλεση αυτής της εντολής, ο ιστότοπός σας θα ξεκινήσει, αλλά θα παρατηρήσετε ότι τα αρχεία καταγραφής δεν θα εμφανίζονται. Αυτό συμβαίνει επειδή ο τρόπος με τον οποίο βλέπουμε τα αρχεία καταγραφής τώρα είναι διαφορετικός.
pm2 logs site
Μπορείτε ακόμη να καθορίσετε πόσες γραμμές αρχείων καταγραφής θέλετε να δείτε, με το --linesόρισμα.
συμπέρασμα
Ρυθμίσατε με επιτυχία έναν διακομιστή ιστού Hapi.js, τον αντιστρέψατε με μεσολάβηση με το Nginx και μάθετε πώς να τον διαχειρίζεστε καλύτερα με το PM2. Με αυτή τη γνώση, μπορείτε να επεκτείνετε περαιτέρω αυτό το σεμινάριο και να δημιουργήσετε μια πολύ προηγμένη εφαρμογή Hapi.js. Για να μάθετε περισσότερα σχετικά με τις δυνατότητες του Hapi, επισκεφτείτε την επίσημη τεκμηρίωσή τους . Αν θέλετε να μάθετε περισσότερα για τις δυνατότητες του PM2, ανατρέξτε στον οδηγό γρήγορης εκκίνησης .