Einsetzen von Meteor in die Produktion mit Meteor-Up, SSL und NGINX

Ich habe Probleme, meine Meteor-App (nachstehend "myApp") mithilfe von meteor-up mit https und NGINX als Proxy in der Produktion bereitzustellen. Insbesondere habe ich Probleme, die richtigen Ports und / oder Pfade zu konfigurieren.

Die Bereitstellung hat in vielerlei Hinsicht funktioniert. Es läuft auf einem digitalen Ozean-Tröpfchen mit einer Mongohq-Datenbank (jetzt compose.io). Meinmup setup, mup reconfig (jetzt mehrmals in meiner mup.json-Datei ausführen) undmup deploy -Befehle mit meteor-up melden alle keine Fehler. Wenn ich in meine Ubuntu-Umgebung auf dem digitalen Ozean ssh und laufenstatus myApp es berichtetmyApp start/running, process 10049, und wenn ich meine Mongohq-Datenbank überprüfe, kann ich sehen, dass die erwarteten Sammlungen für myApp erstellt und gesetzt wurden. Ich denke auf dieser Basis, dass die App einwandfrei läuft.

Mein Problem ist, dass ich es nicht finden kann, wenn ich die Site besuche und keine Erfahrung mit NGINX-Servern habe. Ich kann nicht sagen, ob ich etwas sehr Grundlegendes tue und die Ports und Weiterleitungen falsch einstelle.

Ich habe die relevanten Teile meiner NGINX-Konfigurationsdatei und der mup.json-Datei unten reproduziert.

Das Verhalten, das icherwarte mit dem Setup unten ist, dass, wenn meine Meteor-App auf Port 3000 in mup.json lauscht, die App erscheinen sollte, wenn ich die Site besuche. Wenn ich mup.jsons env.PORT auf 3000 setze, meldet mir mein Browser beim Besuch der Site, dass eine Umleitungsschleife vorliegt. Wenn ich den env.PORT von mup auf 80 ändere oder den env.PORT ganz weglasse, erhalte ich ein502 Bad Gateway message - dieser Teil ist zu erwarten, da myApp localhost abhören sollte: 3000 und ich würde nicht erwarten, irgendwo anders etwas zu finden.

Alle Hilfe wird sehr geschätzt.

MUP.JSON (im relevanten Teil lmk, wenn mehr angezeigt werden muss)
"env": {
  "PORT": 3000,
  "NODE_ENV": "production",
  "ROOT_URL": "http://myApp.com",
  "MONGO_URL": // working ok, not reproduced here,
  "MONGO_OPLOG_URL": // working ok I think,
  "MAIL_URL": // working ok
}
NGINX
server_tokens off;

# according to a digital ocean guide i followed here, https://www.digitalocean.com/community/tutorials/how-to-deploy-a-meteor-js-application-on-ubuntu-14-04-with-nginx, this section is needed to proxy web-socket connections

map $http_upgrade $connection_upgrade {
      default upgrade;
      ''      close;
}

# HTTP

server {
      listen 80 default_server;
      listen [::]:80 default_server ipv6only=on;
      server_name myApp.com;
      # redirect non-SSL to SSL
      location / {
              rewrite ^ https://$server_name$request_uri? permanent;
      }
}

# HTTPS

server {
      listen 443 ssl spdy;

      # this domain must match Common Name (CN) in the SSL certificate

      server_name myApp.com;

      root html;
      index index.html index.htm;

      ssl_certificate /etc/nginx/ssl/tempcert.crt;
      ssl_certificate_key /etc/nginx/ssl/tempcert.key;

      ssl_stapling on;
      ssl_session_cache shared:SSL:10m;
      ssl_session_timeout 5m;

      ssl_prefer_server_ciphers on;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers 'long string I didn't reproduce here'

      add_header Strict-Transport-Security "max-age=31536000;";

      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 X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
      }
}

Beachten Sie auch, dass die SSL-Zertifikate konfiguriert sind und einwandfrei funktionieren. Ich denke, es hängt davon ab, wie die Ports, Pfade und Weiterleitungen konfiguriert sind. Ich weiß nicht, woher die Umleitungsschleife kommt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage