我有点好奇Meteor Up(或其他像Modulus这样的Meteor应用程序部署过程)是否与将Meteor应用程序复制到服务器上,启动tmux会话并只需运行meteor
来启动应用程序相比有什么特别的地方。先谢谢!
我有点好奇Meteor Up(或其他像Modulus这样的Meteor应用程序部署过程)是否与将Meteor应用程序复制到服务器上,启动tmux会话并只需运行meteor
来启动应用程序相比有什么特别的地方。先谢谢!
Meteor Up 和 Modulus 看起来只是运行 node.js 和 MongoDB。在使用 meteor build
打包生产应用之后,它们会运行你的应用程序。这可能会提高你的应用性能。
你也可以在 tmux 或 screen 会话中直接运行 Meteor。我使用 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然后启动meteor,而不是使用专门设计的工具,如Node.js Forever或PM2,它们会在服务器重新启动时自动启动。所以你必须手动登录到服务器并运行meteor
。如果您找到了使用tmux或screen的简单方法,请告诉我。
编辑:
我已经成功地在/etc/rc.local
文件中添加了以下行来启动Meteor系统引导:
sudo -H -u ubuntu -i /usr/bin/tmux new-session -d '/home/ubuntu/Sites/meteorapp/run_meteorapp.sh'
这个命令会在系统启动后,在tmux session中运行run_meteorapp.sh
shell脚本。在run_meteorapp.sh
中,我有:
#!/usr/bin/env bash
(cd /home/ubuntu/Sites/meteorapp && exec meteor run --settings settings.json --production)
所以,是的...它做了更多的事情...功能
单个命令服务器设置 单个命令部署 多服务器部署 环境变量管理 支持settings.json 基于密码或私钥(pem)的服务器身份验证 从终端访问、日志(支持日志尾随) 支持多个Meteor部署(实验性)
服务器配置
如果应用程序崩溃,则自动重启(使用forever) 服务器重新启动后自动启动(使用upstart) 降低用户权限 如果部署失败,则恢复到先前版本 安全的MongoDB安装(可选) 预安装PhantomJS(可选)
Mupx的功能更加强大。它利用Docker。虽然它是开发版本,但在将Meteor更新到1.2之后,我发现它比mup更可靠。
更多信息可以在github存储库中找到:https://github.com/arunoda/meteor-up/tree/mupx
mupx reconfig
- 使用环境变量重新配置应用程序mupx stop
- 停止应用程序mupx start
- ...mupx restart
- ...mupx logs [-f --tail=100]
- 获取日志,在遇到部署错误时非常有帮助。docker exec -it mongodb mongo <appName>
试一试吧!