Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 如何将部署的Meteor应用程序指向新版本?_Nginx_Meteor_Forever - Fatal编程技术网

Nginx 如何将部署的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

我特别指的是在我自己的服务器上运行的应用程序包

我有一个Meteor应用程序在
~/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可能重复而不是滚动您自己的解决方案,请使用。