在EC2上运行node.js + nginx + pm2 + express4的node应用程序
EC2 上的 node.js 服务器.
首先,我们要准备好node.js的环境。
本次使用的版本是v0.10.36。
我们将使用git远程仓库中存放的node.js代码。
$ sudo yum update -y
$ sudo yum install git gcc-c++ make openssl-devel -y
$ git clone git://github.com/creationix/nvm.git .nvm
$ source ~/.nvm/nvm.sh
$ nvm install v0.10.36
$ nvm alias default v0.10.36
$ vim ~/.bash_profile
if [[ -f ~/.nvm/nvm.sh ]]; then
source ~/.nvm/nvm.sh
_nodejs_use_version="v0.10.36"
if nvm ls | grep -F -e "${_nodejs_use_version}" >/dev/null 2>&1 ;then
nvm use "${_nodejs_use_version}" >/dev/null
export NODE_PATH=${NVM_PATH}_modules${NODE_PATH:+:}${NODE_PATH}
fi
unset _nodejs_use_version
fi
安装nginx
$ sudo yum install nginx -y
$ nginx -v
$ sudo chkconfig nginx on
$ sudo service nginx start
$ sudo vim /etc/nginx/conf.d/node-app.conf
upstream node-app {
server localhost:3000;
}
server {
listen 80;
server_name 10.211.55.2;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://node-app/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
$ sudo service nginx restart
应用程序设置
$ git pull origin master nodeapp
$ cd nodeapp
$ npm install
节点守护进程使用pm2
以下是将node应用程序设置为守护程序的最后配置。
由于本次使用的是express4,所以要将其作为服务器启动,需要将其设为./bin/www.js。(原本应该是./bin/www文件,所以请复制一份。)
$ npm install -g pm2
$ pm2 start ./bin/www.js -i max