Skonfiguruj serwer Keystone.js za pomocą Nginx Reverse Proxy na Ubuntu 16.04

W tym samouczku będziemy konfigurować serwer WWW z odwrotnym proxy. CMS, którego będziemy używać, to Keystone.js, dobrze znany framework aplikacji internetowych oparty na Express.js. Odwrotnym proxy, którego będziemy używać, jest Nginx, który jest bezpłatnym i otwartym źródłem zwrotnego proxy, a także serwerem HTTP. Bazą danych, z której będziemy korzystać, jest MongoDB, baza danych dokumentów NoSQL. Będzie to wymagać posiadania domeny z ustawionymi rekordami. Jeśli nie masz tego zestawu, zajmij się tym i wróć do tego samouczka.

Instalowanie węzła

Najpierw zainstalujemy Node.js, który jest interpreterem Javascript opartym na silniku Javascript Chrome V8.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

Instalowanie Nginx

Następnie zainstalujemy Nginx, nasze odwrotne proxy.

sudo apt update
sudo apt install nginx

Spowoduje to zaktualizowanie list pakietów i zainstalowanie Nginx. Po zakończeniu instalacji skonfigurujemy nasz projekt węzła.

Inicjalizacja naszego projektu Keystone

Utwórz nasz projekt węzła. Aby to zrobić, po prostu utwórz nowy folder.

mkdir website

Następnie utworzymy nasz package.jsonplik. Aby to zrobić, po prostu uruchom npm initterminal, wypełnij pola i odpowiedz „ yes”, aby potwierdzić. Po utworzeniu package.jsonpliku zainstalujemy następujące moduły węzłów.

sudo npm install -g generator-keystone
sudo npm install -g yo

Po zakończeniu pobierania uruchom następujące czynności.

yo keystone

Wypełnij wymagane pola. Będzie on poprosi o project nameThe template engine, emailna panelu sterowania, i tak dalej. Jeśli nie wiesz, co wybrać, ustawienia domyślne będą w porządku. Po skonfigurowaniu konfiguracji trapezu możemy przetestować, czy nasz serwer działa, pisząc, node keystoneaby uruchomić aplikację. Domyślnie aplikacja będzie działać localhostna porcie 3000. Pamiętaj, że jeśli nie masz zainstalowanego MongoDB, baza danych nie będzie od razu dostępna. Możesz dowiedzieć się, jak zainstalować go później w samouczku.

Oto podstawowy układ katalogu dla Keystone.js:

  • /lib - W tym miejscu będziesz przechowywać swoje niestandardowe biblioteki i inny kod.

  • /models- W tym miejscu będziesz przechowywać modele baz danych aplikacji. KeystoneJS wykorzystuje MongoDB jako dostawcę bazy danych.

  • /public - W tym miejscu będą przechowywane twoje pliki statyczne (CSS, JS, obrazy itd.).

  • /routes/api - W tym miejscu będą przechowywane kontrolery API Twojej aplikacji.

  • /routes.views - Tutaj będą przechowywane kontrolery widoku aplikacji.

  • /templates - W tym miejscu będą przechowywane wszystkie pliki szablonów aplikacji.

  • /updates - W tym miejscu będą przechowywane twoje skrypty migracji.

  • package.json - To jest twój plik konfiguracyjny npm, który wygenerował dla nas generator.

  • keystone.js - Nasz główny plik startowy, uruchamiamy go podczas uruchamiania strony internetowej.

Inicjalizacja naszej bazy danych

Jak wspomniano wcześniej, naszą bazą danych, z której będziemy korzystać, jest MongoDB, która jest niezawodną bazą danych zorientowaną na dokumenty NoSQL. Jeśli masz już zainstalowany MongoDB, możesz pominąć tę sekcję. Jeśli nie, oto jak zainstalować go na Ubuntu 16.04.

Zaimportuj klucz publiczny używany dla pakietu mongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Utwórz plik listy użyty do zainstalowania pakietu.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Zaktualizuj listy pakietów za pomocą apt.

sudo apt update

Na koniec zainstaluj MongoDB.

sudo apt install mongodb-org -y

Po zakończeniu instalacji uruchom MongoDB.

sudo service mongod start

Spowoduje to uruchomienie procesu MongoDB na porcie 27017.

MongoDB będzie używany w całej aplikacji i będzie wykorzystywany do przechowywania informacji, które wykorzystujemy do naszych modeli, na przykład Usermodelu. Keystone używa go jako wybranej bazy danych, a obecnie nie można używać innych dostawców baz danych.

Instalowanie PM2

Teraz nadszedł czas, aby zainstalować PM2 (Process Manager 2.) PM2 to menedżer procesów dla aplikacji Node.js, w postaci modułu npm. Zapewnia łatwy sposób zarządzania aplikacjami i uruchamiania ich w tle. Ponieważ jest to w NPM, wszystko, co musimy zrobić, aby go zainstalować, uruchom następujące.

sudo npm install pm2 -g

To mówi npm, aby zainstalował go globalnie, dzięki czemu możemy go używać w dowolnym miejscu w naszym systemie.

Uruchamianie / zarządzanie aplikacją na PM2

Wcześniej korzystaliśmy z naszej aplikacji internetowej node keystone. Z PM2 jest trochę inaczej. Teraz uruchamiamy naszą aplikację węzła w następujący sposób.

pm2 start keystone.js

Spowoduje to dodanie naszej aplikacji PM2 do naszej listy procesów, a pojawi się małe okno, dzięki któremu zobaczysz, że jest on rzeczywiście online. Zwróć uwagę na pole oznaczone iddla twojego procesu. Trzymaj się blisko, ponieważ będziemy się do tego odwoływać później.

Aby wyświetlić dzienniki aplikacji.

pm2 logs [id]

Na przykład, pm2 logs 0jeśli jest to Twoja pierwsza aplikacja PM2.

Aby zatrzymać aplikację internetową w dowolnym momencie.

pm2 stop [id]

Aby całkowicie usunąć aplikację.

pm2 delete [id]

PM2 ma nawet pulpit nawigacyjny monitorowania, jeśli chcesz zobaczyć podstawowe statystyki swojej aplikacji i możesz uzyskać do niego dostęp dzięki temu.

pm2 monit

Spowoduje to wyświetlenie podstawowych informacji, takich jak użycie pamięci RAM, użycie procesora i czas pracy.

Świetną funkcją, którą oferuje PM2 jest watching. Zasadniczo oglądanie odbywa się wtedy, gdy PM2 automatycznie wykrywa zmiany dowolnego pliku w tym samym katalogu co plik początkowy i automatycznie uruchomi ponownie aplikację. Aby ją włączyć, po prostu uruchom ponownie aplikację, ale przekaż jej flagę zegarka.

pm2 restart [id] --watch

Aby wyłączyć oglądanie po włączeniu, wystarczy ponownie uruchomić to samo polecenie, a oglądanie zostanie wyłączone.

W tym samouczku przestaniemy oglądać.

Konfigurowanie zwrotnego serwera proxy

Upewnij się, że masz zainstalowany Nginx. Jeśli z jakiegoś powodu tak nie jest, zapoznaj się z powyższymi krokami.

Dostosuj ustawienia zapory. Na Ubuntu ufwjest oficjalnym firewallem. Domyślnie połączenia są blokowane na porcie 80. Musimy dodać wyjątek dla Nginx na porcie 80, na którym będzie działała nasza aplikacja internetowa.

sudo ufw allow 'Nginx HTTP'

Sprawdź, czy Twój serwer Nginx jest uruchomiony.

systemctl status nginx

W Activesekcji, jeśli widzisz active (running), wszystko jest gotowe. Jeśli nie, możesz spróbować ponownie uruchomić usługę.

systemctl restart nginx

Usuń domyślny plik konfiguracyjny Nginx.

sudo rm /etc/nginx/sites-available/default

Utwórz nowy i po prostu zadzwoń node.

sudo nano /etc/nginx/sites-available/node

Wklej następujące elementy do pliku i zastąp example.comje domeną swojej witryny.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Pamiętaj, że proxy_passoznacza adres IP, na którym działa aplikacja Keystone lokalnie, czyli localhostna porcie 3000. listen 80to port, do którego chcemy skierować aplikację, którym w tym przypadku jest port 80.

Następnie musimy utworzyć dowiązanie symboliczne lub dowiązanie symboliczne do folderu o nazwie sites-enabled. Różnica między sites-enabledi sites-availablepolega na tym, że sites-enabledjest w rzeczywistości ładowany przez Nginx.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Teraz twój plik konfiguracyjny sites-availablebędzie gotowy do użycia i zostanie załadowany z sites-enabled. Aby zastosować konfigurację, aby zadziałała, po prostu uruchom ponownie Nginx.

sudo systemctl restart nginx

Na koniec zrestartuj aplikację PM2

pm2 restart [id]

Teraz możesz przejść do swojej domeny w przeglądarce, a zobaczysz Welcome to Keystoneekran z panelem do zalogowania się.

Jeśli go widzisz, oznacza to, że pomyślnie skonfigurowałeś produkcyjny serwer WWW Node.js. Jeśli nie, oznacza to, że mógłeś zrobić krok niepoprawnie i być może zechcesz wrócić i uważnie śledzić każdy krok.

Możesz dowiedzieć się więcej o Nginx, odwiedzając ich stronę internetową .

Mam nadzieję, że podobał ci się ten samouczek i mam nadzieję, że pomógł ci on skonfigurować własny serwer WWW do produkcji na Vultr VPS.



Leave a Comment

Jak zainstalować Anchor CMS na CentOS 7 LAMP VPS

Jak zainstalować Anchor CMS na CentOS 7 LAMP VPS

Używasz innego systemu? Anchor CMS to bardzo prosty i niezwykle lekki, darmowy i otwarty system zarządzania treścią (CMS) Blog Engine, który

Jak zainstalować TextPattern CMS 4.6.2 na FreeBSD 11 FAMP VPS

Jak zainstalować TextPattern CMS 4.6.2 na FreeBSD 11 FAMP VPS

Używasz innego systemu? TextPattern CMS 4.6.2 to prosty, elastyczny, bezpłatny i otwarty system zarządzania treścią (CMS), który umożliwia projektantom stron internetowych

Jak zainstalować BlogoText CMS na Debian 9 LAMP VPS

Jak zainstalować BlogoText CMS na Debian 9 LAMP VPS

Używasz innego systemu? BlogoText CMS to prosty i lekki, bezpłatny i otwarty system zarządzania treścią (CMS) oraz minimalistyczny silnik blogów

Instalowanie Bolt CMS na CentOS 7

Instalowanie Bolt CMS na CentOS 7

Bolt to open source CMS napisany w PHP. Kod źródłowy Bolts jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Bolt CMS na nowym CentOS 7 Vult

Jak zainstalować PyroCMS na Ubuntu 16.04

Jak zainstalować PyroCMS na Ubuntu 16.04

Używasz innego systemu? PyroCMS to open source CMS napisany w PHP. Kod źródłowy PyroCMS jest hostowany na GitHub. W tym przewodniku również przejdź przez entir

Jak zainstalować Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Jak zainstalować Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Używasz innego systemu? Tło CMS 1.8.0 to prosty i elastyczny, przyjazny dla urządzeń mobilnych, bezpłatny i otwarty system zarządzania treścią (CMS), który pozwala nam

Jak zainstalować Pagekit 1.0 CMS na Debian 9 LAMP VPS

Jak zainstalować Pagekit 1.0 CMS na Debian 9 LAMP VPS

Używasz innego systemu? Pagekit 1.0 CMS to piękny, modułowy, rozszerzalny i lekki, bezpłatny i otwarty system zarządzania treścią (CMS) z

Jak zainstalować Anchor CMS na FreeBSD 11 FAMP VPS

Jak zainstalować Anchor CMS na FreeBSD 11 FAMP VPS

Używasz innego systemu? Anchor CMS to bardzo prosty i niezwykle lekki, darmowy i otwarty system zarządzania treścią (CMS) Blog Engine, który

Jak zainstalować Subrion 4.1 CMS na Debian 9 LAMP VPS

Jak zainstalować Subrion 4.1 CMS na Debian 9 LAMP VPS

Używasz innego systemu? Subrion 4.1 CMS to potężny i elastyczny system zarządzania treścią typu open source (CMS), który zapewnia intuicyjny i przejrzysty kontekst

Jak zainstalować TextPattern CMS 4.6.2 na Ubuntu 16.04 LAMP VPS

Jak zainstalować TextPattern CMS 4.6.2 na Ubuntu 16.04 LAMP VPS

Używasz innego systemu? TextPattern CMS 4.6.2 to prosty, elastyczny, bezpłatny i otwarty system zarządzania treścią (CMS), który umożliwia projektantom stron internetowych

Jak zainstalować CMS z października 1.0 na Debianie 9 LAMP VPS

Jak zainstalować CMS z października 1.0 na Debianie 9 LAMP VPS

Używasz innego systemu? 1.0 października CMS to prosty i niezawodny, bezpłatny i otwarty system zarządzania treścią (CMS) oparty na platformie Laravel

Jak zainstalować dotCMS na Ubuntu 16.04

Jak zainstalować dotCMS na Ubuntu 16.04

Używasz innego systemu? DotCMS to otwarty system zarządzania treścią klasy korporacyjnej napisany w Javie. Zawiera prawie każdą wymaganą funkcję t

Jak zainstalować Subrion 4.1 CMS na CentOS 7 LAMP VPS

Jak zainstalować Subrion 4.1 CMS na CentOS 7 LAMP VPS

Używasz innego systemu? Subrion 4.1 CMS to potężny i elastyczny system zarządzania treścią typu open source (CMS), który zapewnia intuicyjny i przejrzysty kontekst

Jak zainstalować WonderCMS na FreeBSD 12

Jak zainstalować WonderCMS na FreeBSD 12

Używasz innego systemu? WonderCMS jest otwartym, szybkim i małym, płaskim plikiem CMS napisanym w PHP. Kod źródłowy WonderCMS jest hostowany na Github. Ten przewodnik wil

Zainstaluj Tiki Wiki CMS Groupware na Ubuntu 18.04 LTS

Zainstaluj Tiki Wiki CMS Groupware na Ubuntu 18.04 LTS

Używasz innego systemu? Wprowadzenie Tiki Wiki CMS Groupware, znany również jako Tiki, to darmowy system zarządzania treścią typu wiki typu open source. Funkcja Tikis

Jak zainstalować BoltWire na Ubuntu 18.04

Jak zainstalować BoltWire na Ubuntu 18.04

Używasz innego systemu? Wprowadzenie BoltWire to darmowy i lekki system zarządzania treścią napisany w języku PHP. W porównaniu do większości innych menedżerów treści

Jak zainstalować ApostropheCMS na Ubuntu 18.04

Jak zainstalować ApostropheCMS na Ubuntu 18.04

ApostropheCMS to nowoczesny system zarządzania treścią zbudowany na NodeJS z naciskiem na rozszerzalne narzędzia do edycji kontekstowej. W tym samouczku nauczysz się ho

Jak zainstalować BigTree CMS 4.2 na FreeBSD FAMP VPS

Jak zainstalować BigTree CMS 4.2 na FreeBSD FAMP VPS

Używasz innego systemu? BigTree CMS 4.2 to szybki i lekki, bezpłatny i otwarty system zarządzania treścią dla przedsiębiorstw (CMS) z rozbudowanym

Jak zainstalować Microweber na CentOS 7

Jak zainstalować Microweber na CentOS 7

Używasz innego systemu? Microweber to otwarty system CMS typu „przeciągnij i upuść” oraz sklep internetowy. Kod źródłowy Microweber jest hostowany na GitHub. Ten przewodnik pokaże ci yo

Jak zainstalować Directus 6.4 CMS na CentOS 7 LAMP VPS

Jak zainstalować Directus 6.4 CMS na CentOS 7 LAMP VPS

Używasz innego systemu? Directus 6.4 CMS to potężny i elastyczny, bezpłatny i otwarty system zarządzania treścią bez głowy (CMS), który zapewnia programistom

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.