用nginx反代nodejs,可以讓每個app變得更獨立。
一、安裝Nginx
http://nginx.org/en/linux_packages.html#stable
在這個頁面,選擇對應的系統版本
這裡是centos5
下載安裝包
wget http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
安裝rpm -ivh nginx-release-centos-5-0.el5.ngx.noarch.rpm
正式安裝
yum install nginx
nginx常用目錄
1 配置所在目錄:/etc/nginx/
2 PID目錄:/var/run/nginx.pid
3 錯誤記錄檔:/var/log/nginx/error.log
4 訪問日誌:/var/log/nginx/access.log
5 預設網站目錄:/usr/share/nginx/html
nginx常用命令
1 啟動nginx:nginx
2 重啟nginx:killall -HUP nginx
3 測試nginx配置:nginx -t
二、準備
事前準備
yum install gcc-c++ openssl-devel curl git-core build-essential libssl-dev
確認一下python
python -V
如果太低,就升級一下
wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
tar jxvf Python-2.7.5.tar.bz2
cd Python2.6.7
./configure
make && make install
更改系統中python版本指向
mv /usr/bin/python /usr/bin/python.bak
ln -s //usr/local/bin/python2.7 /usr/bin/python
解決系統python軟連結指向python2.7版本後,yum不能正常工作
vi /usr/bin/yum
將文本編輯顯示的#/usr/bin/python修改為#/usr/bin/python2.4(你的舊版本的python),儲存.
三、安裝nodejs
#wget http://nodejs.org/dist/v0.10.8/node-v0.10.8.tar.gz
# tar zxvf node-v0.10.8.tar.gz
# cd node-v0.10.8
#./configure –prefix=/usr/local/nodejs –openssl-libpath=/usr/local/ssl/lib/ –openssl-includes=/usr/local/ssl/include/
#make
#make install
修改環境變數
#vi /etc/profile
export NODE_HOME=/usr/local/node/0.10.8/bin
export PATH=$NODE_HOME:$PATH
這兩段加在下面這段上面
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
四、安裝NPM EXPRESS JADE MONGODB FOREVER
curl https://npmjs.org/install.sh | sh
npm install express -g
npm install jade -g
npm install mongdb -g
npm install forever -g
五、配置
建立express 項目
express /www/test
cd /www/test
npm install
設定ngnix反代
cd /etc/nginx/conf.d
cp default.conf xxx.com.conf
xxx.com.con就是你的網域名稱對應的設定檔
vi xxx.com.conf
下面代碼
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
改為
server {
listen 80;
server_name xxx.com www.xxx.com;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
proxy_pass http://127.0.0.1:3000/;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
儲存並
#source /etc/profile
用ngnix代理內部的應用,這樣就可以建立多個nodejs應用,監聽不同的連接埠,分期管理
重啟nginx
#killall -HUP nginx
配置forever 讓forever永久執行
下載編輯一個設定檔
#git clone https://github.com/chovy/node-startup.git
#cd node-startup/init.d
#vi node-app
最上面幾行做如下設定
#/bin/sh
NODE_EXEC=/usr/local/node/0.10.8/bin/node
NODE_ENV=”testpro”
NODE_APP=’app.js’
APP_DIR=’/www/test’;
PID_FILE=$APP_DIR/pid/app.pid
LOG_FILE=$APP_DIR/log/app.log
CONFIG_DIR=$APP_DIR/config
修改後儲存
接著移動到/etc/init.d
#cp node-app /etc/int.d
重新命名
#mv /etc/init.d/node-app /etc/init.d/napp-xxxcom
#chmod 755 /etc/init.d/napp-xxxcom
#chkconfig /etc/init.d/napp-xxxcom on
這樣就可以了
手動啟動一下service napp-xxxcom start
即使重啟系統也會被正常的啟動