Jak skonfigurować aplikację internetową Meteor.js z MongoDB i Apache na Ubuntu 16.04 LTS

Meteor.js to platforma JavaScript typu open source napisana z myślą o Node.js. Jest popularny ze względu na widok tworzenia aplikacji internetowych w czystym JavaScript. Meteor zawiera obsługę JavaScript frontonu, który działa w przeglądarce, a także JavaScript JavaScript, który działałby na serwerze hosta. Bardzo dobrze integruje się z frameworkowymi strukturami JavaScript, takimi jak React i Angular.js, a także MongoDB, popularna baza danych NoSQL. Oto kilka ważnych powodów, dla których warto wybrać Meteor.js:

  • Meteor.js jest platformą z pełnym stosem. Dzięki temu masz wszystko, czego możesz potrzebować: bazę danych, interfejs, backend. Meteor wykonuje niesamowitą robotę, wiążąc wszystko razem.

  • Prędkość. Intuicyjny system pakietów Meteor zapewnia wiele narzędzi potrzebnych do udoskonalenia aplikacji.

  • Ma dobre wsparcie od Meteor Developer Group, a także innych programistów, którzy go używają. Z łatwością będziesz w stanie znaleźć wszelkie problemy i rozwiązać je szybko.

W tym samouczku na Ubuntu 16.04 osiągniemy następujące cele:

  • Zainstaluj Node.jsnasz środowisko uruchomieniowe JavaScript.

  • Zainstaluj Meteor.js.

  • Zainstaluj MongoDBwybraną bazę danych Meteor.

  • Zainstaluj Apachenasz wybrany serwer proxy zwrotnego i skonfiguruj naszą domenę, jeśli dotyczy.

  • Przetestuj naszą stronę internetową.

  • Skonfiguruj naszą stronę internetową do produkcji.

Instalowanie Node.js

Najpierw musisz zainstalować Node.js, który jest naszym interpretatorem JavaScript i rdzeniem Meteora. Pozwoli nam to uruchomić Meteor i inne aplikacje Node.js, które możemy mieć w przyszłości. W tej sytuacji będziemy instalować Node.js 8. Aby rozpocząć pobieranie, uruchom następujące polecenie w swoim terminalu.

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

Poczekaj na zakończenie pobierania i instalacji.

Instalowanie MongoDB

Następnie zainstalujemy naszą bazę danych: MongoDB. MongoDB to darmowa baza danych dokumentów NoSQL typu open source oraz baza danych Meteor z wyboru. W swoich dokumentach używa formatu podobnego do JSON, w przeciwieństwie do tabel strukturalnych w tradycyjnej bazie danych SQL.

Zaimportuj klucz publiczny MongoDB używany przez APT(Advanced Packaging Terminal). To pozwala APT zweryfikować paczkę; w tym przypadku MongoDB.

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

Utwórz niezbędny plik listy dla Ubuntu 16.04.

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

Rozpocznij instalację MongoDB i poczekaj na zakończenie instalacji.

sudo apt update && sudo apt install mongodb-org -y

Otwórz usługę systemową do edycji.

sudo nano /etc/systemd/system/mongodb.service

Skopiuj i wklej następujące elementy, aby ukończyć usługę systemd.

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

Użyj „ Control-O”, aby zapisać, i „ Control-X”, aby wyjść.

Uruchom usystematyzowaną usługę MongoDB, wpisując sudo systemctl start mongodbswój terminal.

Aby sprawdzić, czy pomyślnie się rozpoczął, wpisz następujące polecenie.

sudo systemctl status mongodb

Zobaczysz, że usługa jest aktywna.

Instalowanie i konfigurowanie Apache2

Następnie zainstalujemy Apache. Apache to darmowe oprogramowanie serwera sieci Web typu open source, które działa również jako odwrotne proxy, z czego będziemy korzystać w tym samouczku. Odwrotny serwer proxy jest potrzebny do powiązania naszej aplikacji Meteor.js port 80. Node.js blokuje uruchamianie aplikacji na tym porcie bez dostępu użytkownika root. Apache działa zarówno rootautomatycznie, jak i łączy się z port 80, więc nie będziemy musieli się tym martwić, gdy przyjdzie czas na uruchomienie naszej strony internetowej.

Zainstaluj Apache.

sudo apt update && sudo apt install apache2

Aby umożliwić dostęp do zewnętrznych portów internetowych, takich jak port 80, musimy skonfigurować naszą zaporę ogniową dla Apache. Robimy to poprzez UFW(Nieskomplikowaną zaporę ogniową).

sudo ufw allow 'Apache Full'

Umożliwi to dostęp do Apache Fullprofilu „ ”. Daje nam to ruch przychodzący port 80, na którym będzie działać nasza aplikacja.

Instalowanie Meteor.js i tworzenie naszej aplikacji bazowej

Teraz zainstalujemy naszą platformę internetową: Meteor.js. Użyjemy prostego skryptu bash dostarczonego przez zespół Meteor, aby go zainstalować.

curl https://install.meteor.com/ | sh

Poczekaj na zakończenie instalacji. W zasadzie skrypt pobiera Meteor z oficjalnej strony i instaluje go globalnie, abyśmy mogli go używać z dowolnego miejsca. Po zakończeniu możemy utworzyć katalog aplikacji. Meteor ma dla nas przydatne małe narzędzie, zwane meteor create. Aby utworzyć katalog aplikacji, wpisz następujące polecenie.

meteor create <projectname>

Folder zostanie utworzony z podaną nazwą ( <projectname>).

Konfigurowanie naszego odwrotnego proxy Apache

Teraz, gdy mamy skonfigurowany katalog aplikacji, możemy kontynuować konfigurację naszego odwrotnego proxy. Apache używa modułu o nazwie mod_proxy, który implementuje proxy dla Apache.

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

Spowoduje to zainstalowanie modułu i udostępnienie go do użycia przez Apache.

Następnie będziemy musieli włączyć wszystkie niezbędne moduły, które musi uruchomić Apache. Zrobimy to za a2enmodpomocą narzędzia, które umożliwia moduły dla Apache. Te moduły pozwolą nam skorzystać z odwrotnego proxy. Po prostu wpisz te polecenia w swoim terminalu.

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

Następnie będziemy musieli wyłączyć domyślną stronę Apache przed uruchomieniem, abyśmy mogli uruchomić własną. W przeciwnym razie domyślna aplikacja Apache zastąpi naszą. Aby wyłączyć domyślną witrynę, po prostu uruchom następujące polecenie.

sudo a2dissite 000-default

Teraz utworzymy plik wirtualnego hosta. Aby to zrobić, wystarczy otworzyć edytor tekstu.

sudo nano /etc/apache2/sites-available/<projectname>

Skopiuj i wklej następujące.

<VirtualHost *:80>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  # Servers to proxy the connection, or
  # List of application servers Usage
  ProxyPass / http://0.0.0.0:3000/
 ServerName localhost
</VirtualHost>
  • VirtualHost *:80: Mówi Apache, aby podłączył się do portu 80, czego chcemy dla naszej aplikacji internetowej.

  • ProxyPass: Adres IP witryny, którą chcesz przekazać do zwrotnego serwera proxy. Najprawdopodobniej będzie to adres IP twojego VPS

  • ServerName: Nazwa twojego serwera (zazwyczaj jest to nazwa domyślna localhost).

Po zakończeniu konfigurowania niezbędnych ustawień użyj przycisków „ Control-O”, aby zapisać, i „ Control-X”, aby wyjść.

Uruchamianie strony po raz pierwszy

Aby przetestować i upewnić się, że witryna internetowa działa, wpisz następujące polecenie w katalogu projektu.

meteor

Zobaczysz następujące dane wyjściowe wskazujące, że Twoja witryna została pomyślnie uruchomiona.

=> App running at: http://localhost:3000/

Pamiętaj, że Meteor domyślnie nasłuchuje port 3000.

Utworzenie naszej strony internetowej do produkcji

Aby mieć pewność, że nasza aplikacja będzie mogła nadal działać, skorzystamy z usługi systemd. Podobnie do tego, co zrobiliśmy powyżej z MongoDB, ta usługa systemowa zapewni, że nasza strona internetowa uruchomi się przy każdym uruchomieniu naszego systemu i pozostanie uruchomiona. Zrestartuje również naszą aplikację w przypadku awarii z jakiegokolwiek powodu. Aby skonfigurować naszą usługę systemową, wpisz następujące polecenie w swoim terminalu.

sudo nano /etc/systemd/system/<projectname>.service

Oto jak ma wyglądać twój plik.

[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1

Uwaga : Nie zapomnij zastąpić projectnamenazwą projektu i yourusernamenazwą użytkownika VPS.

Oto kilka kluczowych kwestii, o których należy pamiętać.

  • WorkingDirectory: Katalog Twojej aplikacji.

  • Restart: Określa, czy ponowne uruchomienie aplikacji zostanie zatrzymane z jakiegokolwiek powodu.

  • User: Twoja nazwa użytkownika.

  • Environment=PWD: Identyczny z WorkingDirectory.

  • Environment=PORT: Port, na którym działa aplikacja. Domyślnie jest to 3000.

Zapisz i zamknij plik.

Teraz włączymy i uruchomimy usługę.

sudo systemctl enable <projectname>.service

Gdzie <projectname>jest nazwa pliku usługi, który utworzyliśmy.

Następnie uruchomimy usługę.

sudo systemctl start <projectname>.service

Twoja aplikacja zostanie uruchomiona. Aby sprawdzić, czy został uruchomiony, uruchom następujące polecenie.

sudo systemctl status <projectname>

Zobaczysz, że jest aktywny, sprawdzając, czy usługa została pomyślnie uruchomiona.

Następnie sprawdzimy naszą stronę internetową. W wybranej przeglądarce internetowej przejdź do swojego adresu IP.

http://your-server-ip/

Zobaczysz ekran przykładowy Meteor, potwierdzający, że wszystko zrobiłeś poprawnie.

Zarządzanie naszą aplikacją

Po uruchomieniu naszej aplikacji będziemy musieli nią zarządzać.

Ponowne uruchomienie aplikacji

sudo systemctl restart <projectname>

Zatrzymywanie aplikacji

sudo systemctl stop <projectname>

Wyświetlanie statusu aplikacji

sudo systemctl status <projectname>

Przeglądanie dzienników

journalctl -u <projectname>

Z powodzeniem skonfigurowałeś MongoDB, Apache i Meteor i stworzyłeś serwer internetowy Meteor.js do produkcji. Teraz reszta należy do Ciebie, aby zaprojektować swoją stronę internetową z przodu i z tyłu. Masz dostęp do MongoDB do przechowywania dowolnych potrzebnych danych oraz Node.js, który oferuje różnorodne moduły dostępne za pośrednictwem Node Package Manager ( NPM) w celu dalszego wzmocnienia twojego backendu. Aby uzyskać więcej dokumentacji, odwiedź witrynę Meteor , gdzie możesz dowiedzieć się, jak dostosować swoją stronę do własnych potrzeb. Możesz również odnieść się do dokumentacji MongoDB , gdy masz do czynienia z operacjami na bazie danych.



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.