Fork me on GitHub

node生产环境部署

node生产环境部署包括部署nodejs、mongodb、nginx、git、pm2

  • nodejs

安装 nodejs
cd /root/program
wget http://nodejs.org/dist/v0.12.5/node-v0.12.5-linux-x64.tar.gz
tar -zxvf node-v0.12.5-linux-x64.tar.gz

设置软连接,类似于wins的快捷方式,这里为了全局使用node、npm
ln -s /root/program/node-v0.12.5-linux-x64/bin/node /usr/local/bin/node
ln -s /root/program/node-v0.12.5-linux-x64/bin/npm /usr/local/bin/npm

  • mongodb

安装 mongodb
cd /root/program
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz
tar -zxvf mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz

设置数据和日志目录
mkdir data
mkdir logs

启动mongodb
./mongod –dbpath=”/root/program/mongodb-linux-x86_64-ubuntu1404-3.0.3/data” –logpath=”/root/program/mongodb-linux-x86_64-ubuntu1404-3.0.3/logs/mongodb.log”

  • nginx 反向代理服务

安装依赖库PCRE
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make
make install

安装依赖库zlib
cd /root/program
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

安装nginx
cd /root/program
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure
make
make install

配置nginx
cd /usr/local/nginx
增加nodejs站群配置
vi conf/nginx.conf
vi编辑配置文件,在http{..}中新增’include node.js;’,然后新建node.js
vi node.js
vi 编辑内容如下(多个站点配置多个server)
server {
listen 80;
server_name mhbseal.com www.mhbseal.com;
location / {
proxy_pass http://localhost:3000;
}
}

启动nginx
sbin/nginx

如果再次修改配置可重启
sbin/nginx -s reload

  • git版本控制

安装git
apt-get install git
把开发人员的SSH公钥加入到服务
cd /root/.ssh
vi authorized_keys2
把类似ssh-rsa … local 这样的公钥加入到authorized_keys2的最后一行

新建git仓库
cd /root/repository
git init —-bare blog.git
cd blog.git

新建自动更新hook
vi hooks/post-receive
内容如下

#!/bin/sh
GIT_WORK_TREE=/root/website/blog git checkout -f
然后添加执行权限
chmod +x hooks/post-receive

新建website/blog
cd /root/website
git clone /root/repository/blog.git

客户端
git clone root@127.0.0.1:/root/repository/blog.git
clone下仓库之后就可以pull push代码了,并且服务端的website/blog也会自动更新

  • pm2 Node App 进程管理器

安装pm2
npm install -g pm2

启动app
NODE_ENV=production pm2 start app.js –name blog –node-args=”–harmony” –watch

重新启动app
NODE_ENV=production pm2 reload app.js –name blog –node-args=”–harmony” –watch

参考链接:
http://mhbseal.com/article?id=558b5520c968dd7663e31e2a