2015-10-21 11 views
7

Ich bin ein bisschen neugierig, wenn Meteor Up (oder andere Meteor App-Prozesse wie Modulus) nichts Besonderes machen im Vergleich zum Kopieren über Ihre Meteor-Anwendung, Starten einer TMux-Sitzung und einfach nur Laufen meteor, um Ihre Anwendung auf Ihrem Server zu starten. Danke im Voraus!Meteor-App über Meteor Up oder tmux Meteor

Antwort

12

Meteor Up und Modul scheinen nur node.js und Mongodb zu laufen. Sie führen Ihre App aus, nachdem sie für die Produktion mit meteor build verpackt wurde. Dies wird Ihrer App wahrscheinlich einen Vorteil in der Leistung geben.

Es ist möglich, nur Meteor in einer tmux oder Bildschirm Sitzung. Ich benutze meteor run --settings settings.json --production, um Einstellungen zu übergeben und auch den Produktionsmodus zu verwenden, der den Code minimiert usw. Sie können auch einen Proxy-Forwarder wie Nginx verwenden, um Anfragen an Port 80 (http) und 443 (https) weiterzuleiten.

als Referenz hier ist mein Nginx config:

server { 
    listen 80; 
    server_name example.com www.example.com; 
    return 301 https://example.com$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name www.example.com; 

    ssl_certificate /etc/ssl/private/example.com.unified.crt; 
    ssl_certificate_key /etc/ssl/private/example.com.ssl.key; 

    return 301 https://example.com$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name example.com; 

    ssl_certificate /etc/ssl/private/example.com.unified.crt; 
    ssl_certificate_key /etc/ssl/private/example.com.ssl.key; 



    location/{ 
    proxy_pass http://localhost:3000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header Host $host; 
    proxy_set_header X-NginX-Proxy true; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

diese Methode alles Durch die Verwendung innerhalb des Meteor Behälter enthalten und Sie haben den Vorteil der Meteor für Veränderungen zu beobachten usw. Allerdings kann es einige zusätzliche sein Overhead auf Ihrem Server. Ich bin mir nicht sicher, wie sehr ich beide Wege nicht genug getestet habe.

Das einzige Problem, das ich mit dieser Methode gefunden habe, ist es ist nicht einfach, alles auf Neustart automatisiert zu bekommen, wie tmux dann automatisch ablaufenden Meteor startet, im Gegensatz speziell entwickelten Tools wie Node.js immer oder zu verwenden PM2, die beim Neustart des Servers automatisch gestartet werden. Sie müssen sich also manuell beim Server anmelden und meteor ausführen. Wenn Sie mit tmux oder screen einen einfachen Weg erarbeiten, dies zu tun, lassen Sie es mich wissen.

Edit:

ich es geschafft haben, Meteor zu bekommen beim Systemstart mit der folgenden Zeile in der /etc/rc.local Datei zu starten:

sudo -H -u ubuntu -i /usr/bin/tmux new-session -d '/home/ubuntu/Sites/meteorapp/run_meteorapp.sh' 

Dieser Befehl führt die run_meteorapp.sh Shell-Skript in einer tmux Sitzung sobald das System gebootet hat. In der run_meteorapp.sh habe ich:

#!/usr/bin/env bash 
(cd /home/ubuntu/Sites/meteorapp && exec meteor run --settings settings.json --production) 
5

Wenn Sie auf die Meteor Up Github Seite schauen: https://github.com/arunoda/meteor-up können Sie sehen, was es tut.

wie:

Eigenschaften

Einzelbefehl Serverkonfiguration Einzelbefehl Bereitstellung Multi-Server Bereitstellung Umgebungsvariablen Management Unterstützung für settings.json Passwort oder Privaten Key (pem) basierte Server-Authentifizierung Zugriff, Protokolle vom Terminal (unterstützt Log Tailing) Unterstützung für mehrere Meteor-Einsätze (experimentell)

01 Konfiguration

Server

Auto-Restart, wenn die App abgestürzt (mit immer) Auto-Start nach dem Neustart des Servers (mit Emporkömmling) Stepdown-Benutzerberechtigungen Zurückkehren zur Vorversion, wenn der Einsatz Secured failed MongoDB Installation (Optional) Vorinstallierte PhantomJS (Optional)

Also ja ... es tut viel mehr ...

3

Mupx noch mehr. Es nutzt docker aus. Es ist die Entwicklungsversion, aber ich habe es viel zuverlässiger als MUP erwiesen nach Meteor

Mehr Infos zu 1.2 aktualisieren können an der GitHub Repo zu finden: https://github.com/arunoda/meteor-up/tree/mupx

1

I mupx zum digitalen Ozean zu implementieren verwendet haben . Nachdem Sie die mup.json-Datei eingerichtet haben, können Sie die App nicht nur bereitstellen, sondern Sie können den Code auf dem Server auch einfach über die CLI aktualisieren. Es gibt noch ein paar andere Befehle, die hilfreich sind.

mupx reconfig - reconfigs App mit Umgebungsvariablen
mupx stop - ...
mupx restart - - ...
mupx logs [-f --tail=100] - App duh
mupx start hält diese bekommt Protokolle, die enorm hilfreich sein können, wenn Sie Bereitstellungsfehler auftreten.

Es macht es sicherlich einfach, Ihre App zu aktualisieren, und ich war ziemlich glücklich damit.

Mupx Nutzt MeteorD (Docker Runtime for Meteor Apps) und da es Docker verwendet, kann es wirklich nützlich sein, die MongoDB-Shell mit diesem Befehl via ssh zuzugreifen:

docker exec -it mongodb mongo <appName> 

Geben Sie ihm einen Schuss!