Развертывание Meteor на производстве с помощью Meteor-Up, SSL и NGINX

У меня возникают трудности при развертывании моего метеорного приложения («myApp» ниже) в производство, используя meteor-up с https и NGINX в качестве прокси. В частности, я думаю, что у меня проблемы с настройкой правильных портов и / или путей.

Развертывание сработало во многих отношениях. Он работает на цифровой океанской капле с базой данных mongohq (теперь compose.io). мойmup setup, mup reconfig (запустить сейчас много раз на моем файле mup.json) иmup deploy Команды с метеорологией все сообщают об ошибках. Если я зайду в свою среду убунту на цифровом океане иstatus myApp это сообщаетmyApp start/running, process 10049и когда я проверяю свою базу данных mongohq, я вижу, что ожидаемые коллекции для myApp были созданы и посеяны. Исходя из этого, я думаю, что приложение работает правильно.

Моя проблема в том, что я не могу найти его при посещении сайта и, не имея опыта работы с серверами NGINX, я не могу сказать, делаю ли я что-то очень простое и неправильное в настройке портов и переадресации.

Я воспроизвел соответствующие части моего файла конфигурации NGINX и файла mup.json ниже.

Поведение яожидаемый с настройкой ниже, если мое приложение meteor прослушивает порт 3000 в mup.json, приложение должно появиться при посещении сайта. На самом деле, если я установлю в mup.json env.PORT значение 3000, при посещении сайта мой браузер сообщит мне, что существует цикл перенаправления. Если я изменю env.PORT от mup на 80 или оставлю env.PORT полностью, я получу502 Bad Gateway сообщение - эту часть следует ожидать, потому что myApp должен прослушивать localhost: 3000, и я не ожидал бы найти что-нибудь еще.

Вся помощь очень ценится.

MUP.JSON (в соответствующей части, lmk, если нужно показать больше)
"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;
      }
}

Также обратите внимание, что сертификаты SSL настроены и работают нормально, так что я думаю, что это что-то с настройкой портов, путей и переадресации. Я не знаю, откуда идет цикл перенаправления.

Ответы на вопрос(4)

Ваш ответ на вопрос