Nginx 如何将部署的Meteor应用程序指向新版本?
我特别指的是在我自己的服务器上运行的应用程序包 我有一个Meteor应用程序在Nginx 如何将部署的Meteor应用程序指向新版本?,nginx,meteor,forever,Nginx,Meteor,Forever,我特别指的是在我自己的服务器上运行的应用程序包 我有一个Meteor应用程序在~/bundle中运行,并且我的git repo位于~/project。我在~/release中保存了不同的发布包tarball ~/release |-0.1.0.tar.gz |-0.1.1.tar.gz |-0.2.0.tar.gz 在从git中引入更改并切换到最新版本后,我希望捆绑我的新版本,并利用热代码重新加载的优势,并(希望?)保持客户端连接的活动性。最好的方法是什么 注意:我也在使用ngin
~/bundle
中运行,并且我的git repo位于~/project
。我在~/release
中保存了不同的发布包tarball
~/release
|-0.1.0.tar.gz
|-0.1.1.tar.gz
|-0.2.0.tar.gz
在从git中引入更改并切换到最新版本后,我希望捆绑我的新版本,并利用热代码重新加载的优势,并(希望?)保持客户端连接的活动性。最好的方法是什么
注意:我也在使用nginx;那么,这会以任何方式影响这个过程吗?i、 它会杀死开放的客户端连接吗?更新到较新的应用程序版本后是否必须重新加载nginx
谢谢。您可以使用这样的脚本 确保在ssh配置文件中定义服务器,例如
Host yourserver
User youruser
Port 22
Hostname yourapp.com
IdentityFile ~/.ssh/yourkeyfile.pem
TCPKeepAlive yes
IdentitiesOnly yes
然后您可以有一个bash脚本,如下所示:
#!/bin/bash
cd ~/Desktop/yourappdirectory
rm -f ~/Desktop/yourapp.tar.gz
meteor bundle ~/Desktop/yourapp.tar.gz
scp ~/Desktop/yourapp.tar.gz yourserver:~/yourapp.tar.gz
ssh yourserver <<'ENDSSH'
cd ~/
tar -xzf yourapp.tar.gz
sudo rm -rf yourapp
mv bundle yourapp
cd yourapp/programs/server/node_modules
rm -rf fibers
rm -rf bcrypt
sudo npm install fibers@1.0.1
sudo npm install bcrypt
cd ~/yourapp/programs/server/npm/mongo-livedata/main
rm -r mongodb
sudo npm install mongodb@1.4.1
cd ~/
sudo forever stop ~/yourapp/main.js
sudo MONGO_URL=mongodb://user:pass@ip:27017/meteor PORT=3000 ROOT_URL=https://yoursite.com forever start ~/yourapp/main.js
ENDSSH
#/bin/bash
cd~/Desktop/yourappdirectory
rm-f~/Desktop/yourapp.tar.gz
流星束~/Desktop/yourapp.tar.gz
scp~/Desktop/yourapp.tar.gz yourserver:~/yourapp.tar.gz
ssh-yourserver可能重复而不是滚动您自己的解决方案,请使用。