Развертывание приложения Meteor через Meteor Up или tmux meteor

Мне немного любопытно, делает ли Meteor Up (или другое приложение Meteor, развертывающее процессы, такие как Modulus) что-нибудь необычное по сравнению с копированием вашего приложения Meteor, запуском сеанса tmux и простым запуском meteor для запуска вашего приложения на вашем сервере. Заранее спасибо!


person aspin    schedule 21.10.2015    source источник


Ответы (4)


Meteor Up и Modulus просто запускают node.js и Mongodb. Они запускают ваше приложение после его упаковки для производства с помощью meteor build. Это, вероятно, даст вашему приложению преимущество в производительности.

Можно просто запустить метеор в сеансе tmux или screen. Я использую meteor run --settings settings.json --production для передачи настроек, а также использую производственный режим, который минимизирует код и т. д. Вы также можете использовать прокси-сервер пересылки, такой как Nginx, для пересылки запросов на порт 80 (http) и 443 (https).

Для справки, вот моя конфигурация Nginx:

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;
  }
}

Используя этот метод, все содержится в контейнере метеора, и вы можете наблюдать за изменениями метеора и т. Д. Однако на вашем сервере могут быть некоторые дополнительные накладные расходы. Я не уверен точно, насколько, поскольку я недостаточно тестировал оба способа.

Единственная проблема, которую я обнаружил при использовании этого метода, заключается в том, что нелегко автоматизировать все при перезагрузке, например автоматически запускать tmux, а затем запускать метеор, в отличие от использования специально разработанных инструментов, таких как Node.js Forever или PM2, которые автоматически запускаются при перезагрузке сервера. Поэтому вам нужно вручную войти на сервер и запустить meteor. Если вы найдете простой способ сделать это с помощью tmux или screen, дайте мне знать.

Изменить:

Мне удалось запустить Meteor при загрузке системы со следующей строкой в ​​файле /etc/rc.local:

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

Эта команда запускает сценарий оболочки run_meteorapp.sh внутри сеанса tmux после загрузки системы. В run_meteorapp.sh у меня есть:

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

Если вы посмотрите на страницу Meteor Up Github: https://github.com/arunoda/meteor-up вы можете видеть, что он делает.

Такие как:

Функции

Настройка сервера с одной командой Развертывание с одной командой Развертывание с несколькими серверами Управление переменными среды Поддержка аутентификации сервера settings.json на основе пароля или закрытого ключа (pem) Доступ, журналы из терминала (поддерживает хвост журнала) Поддержка развертывания нескольких метеоров (экспериментально)

Конфигурация сервера

Автоматический перезапуск в случае сбоя приложения (используя навсегда) Автоматический запуск после перезагрузки сервера (используя upstart) Пошаговое понижение прав пользователя Возврат к предыдущей версии, если развертывание не удалось Защищенная установка MongoDB (необязательно) Предварительно установленный PhantomJS (необязательно)

Так что да... это делает намного больше...

person Eliezer Steinbock    schedule 22.10.2015

Mupx делает даже больше. Он использует докер. Это версия для разработки, но после обновления Meteor до 1.2 я обнаружил, что она более надежна, чем mup.

Дополнительную информацию можно найти в репозитории github: https://github.com/arunoda/meteor-up/tree/mupx

person Travis White    schedule 15.12.2015

Я использую mupx для развертывания в цифровом океане. После того, как вы настроите файл mup.json, вы сможете не только развернуть приложение, но и легко обновить код на сервере через интерфейс командной строки. Есть еще несколько полезных команд.

mupx reconfig – перенастраивает приложение с переменными среды
mupx stop – останавливает приложение, черт возьми
mupx start – ...
mupx restart – ...
mupx logs [-f --tail=100] – получает журналы, которые могут быть чрезвычайно полезны при возникновении ошибок развертывания.

Это, безусловно, упрощает обновление вашего приложения, и я очень доволен этим.

Mupx использует MeteorD (среда выполнения Docker для приложений Meteor), и поскольку он использует докер, доступ к нему может быть очень полезен. оболочку MongoDB через ssh с помощью этой команды:

docker exec -it mongodb mongo <appName>

Дать ему шанс!

person Dev Life    schedule 13.06.2016