2015-10-21 81 views

回答

12

流星最多Modulus似乎只是运行node.js和Mongodb。他们在用meteor build进行包装生产后运行您的应用程序。这可能会使您的应用在性能方面处于领先地位。

有可能在tmux屏幕会话中运行流星。我使用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的永远PM2,当服务器重新启动时自动启动。所以你必须手动登录到服务器并运行meteor。如果你制定了一个简单的方法来使用tmux屏幕让我知道。

编辑:

我设法让流星开始在系统启动时与在/etc/rc.local文件以下行:

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

此命令运行TMUX会话内部的run_meteorapp.sh shell脚本一旦系统启动。在run_meteorapp.sh我有:

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

如果你看看Meteor Up Github页面:https://github.com/arunoda/meteor-up你可以看到它的功能。

如:

特点

基于

单指令服务器设置单指令多部署服务器 部署环境变量管理 settings.json密码或私钥(PEM)支持服务器认证 访问,来自终端的日志(支持日志加尾)支持 多个流星部署(实验)

服务器配置

自动重启,如果应用程序崩溃(永久使用)自动启动 服务器重新启动后(使用暴发户)的降压型用户权限还原到 以前的版本,如果部署失败担保的MongoDB 安装(可选)预安装PhantomJS(可选)

所以,是的...它可以做更多...

1

我一直在使用mupx部署到数字海洋。一旦设置了mup.json文件,您不仅可以部署应用程序,还可以通过CLI轻松更新服务器上的代码。还有其他一些有用的命令。

mupx reconfig - reconfigs与环境变量应用
mupx stop - 停止应用咄
mupx start - ...
mupx restart - ...
mupx logs [-f --tail=100] - 这获取日志,当你遇到部署错误可以是巨大的帮助。

它当然可以很容易地更新您的应用程序,我一直很满意它。

Mupx确实使用MeteorD (Docker Runtime for Meteor Apps) 和,因为它使用泊坞窗也可以是真正有用的通过ssh用这个命令来访问MongoDB的外壳:

docker exec -it mongodb mongo <appName> 

给它一个镜头!

相关问题