Nodejs 在阿里云主机Nginx下配置Express和Forever
Nodejs 在阿里云主机Nginx下配置Express和Forever
AngularJS中文社区即运行在阿里云主机上,本站使用Nginx引擎,为了AngularJS,我决定将它的黄金搭档NodeJS也架设起来。
我使用了LuManager来管理服务器,LuManager是十分强大且方便的服务器管理软件,没接触过的朋友建议去官网看看。
一、Nginx站点与NodeJS站点共存的配置
首先是网站入口问题,Nginx使用了80端口,NodeJS使用8080端口。我们利用Nginx的“proxy_pass”将对80端口NodeJS站点的访问导向8080端口,在LuManager中,这个配置十分简单:<!–more–>
*1、*进入LuManager后台,用“快速建站”建立NodeJS网站,如testnodejs.com网站,这里也可建立多个NodeJS网站,网站域名按如下方式填写即可:
testnodejs.com *.testnodejs.com testnodejs2.com *.testnodejs2.com
使他们指向共同的NodeJS网站群根目录,如nodejs
目录。
2、然后为NodeJS网站配置Nginx,修改该NodeJS网站配置,进入选填项,在Nginx扩展设置(location段)**添加如下代码:
proxy_pass http://127.0.0.1:8080;
如此以来,外部对testnodejs.com、testnodejs2.com等NodeJS网站的访问全部转向了8080端口,NodeJS监听8080端口即可。而该NodeJS网站群的根目录即上面设置的nodejs
目录,我们可在该目录中再搭设testnodejs.com、testnodejs2.com等虚拟站点。
二、安装NodeJS
NodejS目前最新稳定版是0.8.9,在阿里云CentOS6.2环境中,根据以下步骤即可成功安装:
wget http://nodejs.org/dist/v0.8.9/node-v0.8.9.tar.gz
tar zxvf node-v0.8.9.tar.gz
cd node-v0.8.9
./configure --prefix=/home/node/0.8.9
make
make install
我的阿里云主机编译过程大概花了7分钟,安装成功后配置系统环境,使node命令可用:
echo "export PATH=$PATH:/home/node/0.8.9/bin" >> ~/.bash_profile
. ~/.bash_profile
第一行将/home/node/0.8.9/bin
添加到系统环境(root目录下的.bash_profile
文件),第二行执行该文件更新$PATH变量,我们可以使用echo $PATH
命令查看是否添加进去。现在,我们在命令行输入node --help
测试一下:
至此,NodeJS安装完毕。
三、安装Express框架
使用NodeJS几乎是必装express框架,使用下面命令即可安装:
npm install express -gd
其中g
参数是把express安装到NodeJS的lib目录,d
参数表示同时安装依赖模块包。安装完毕后切换到NodeJS模块目录,然后执行npm命令查看所有NodeJS模块:
cd /home/node/0.8.9/lib
npm list
npm outdated
npm update
上面第二个命令是列出所有NodeJS目录下的模块,第三个命令是检查模块是否有更新,第四个命令是更新当前目录可更新的模块。
至此,Express安装完毕,我们可以在网站目录下建一个基于express的应用:
express testapp
cd testapp
npm install
node app.js
上面第三个命令是安装该testapp应用的依赖模块包,第四个命令即运行testapp应用。我们看到提示“Express server listening on port 3000”,目前该应用使用的是3000端口,我们要改成8080端口,用编辑器打开app.js,代码如下:
/**
* Module dependencies.
*/
var express = require(‘express’)
, routes = require(’./routes’)
, user = require(’./routes/user’)
, http = require(‘http’)
, path = require(‘path’);
var app = express();
app.configure(function(){
app.set(‘port’, process.env.PORT || 8080);
app.set(‘views’, __dirname + ‘/views’);
app.set(‘view engine’, ‘jade’);
app.use(express.favicon());
app.use(express.logger(‘dev’));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, ‘public’)));
});
app.configure(‘development’, function(){
app.use(express.errorHandler());
});
app.get(’/’, routes.index);
app.get(’/users’, user.list);
http.createServer(app).listen(app.get(‘port’), function(){
console.log("Express server listening on port " + app.get(‘port’));
});
上面第14行,我已将端口改成8080,然后运行node app.js
,这个简单的基于NodeJS和Express的网站就开始运行了,从浏览器进入该NodeJS站点,即可看到效果(我使用了域名weizt.com):
四、安装Forever后台管理器
我们不可能直接通过node
命令来管理远程站点,这样无法保证网站的可持续运行。我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行。
首先,安装Forever:
npm install forever -gd
这样Forever就安装好了,我们可以直接运行Forever命令:
forever --help
forever start app.js
forever stop app.js
上面命令先查看Forever帮助文件,然后运行app.js,然后停止app.js。我们要让Forever自动运行,先在/etc/init.d
目录创建一个文件node
,内容如下:
#!/bin/bash
#
# node Start up node server daemon
#
# chkconfig: 345 85 15
# description: Forever for Node.js
#
PATH=/home/node/0.8.9/bin
DEAMON=/home/ftp/1520/weizt-20120918-tKx/weizt.com/app.js
LOG=/home/hosts_log
PID=/tmp/forever.pid
case “$1” in
start)
forever start -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
stop)
forever stop --pidFile $PID $DEAMON
;;
stopall)
forever stopall --pidFile $PID
;;
restartall)
forever restartall --pidFile $PID
;;
reload|restart)
forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
list)
forever list
;;
*)
echo “Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}”
exit 1
;;
esac
exit 0
以上代码是我在本地虚拟机的配置,根据实际情况修改相关参数,主要是DEAMON的路径参数,赋予该文件可执行权限,并运行chkconfig添加自动运行:
chmod 755 /etc/init.d/node
chkconfig /etc/init.d/node on
reboot重启系统,通过浏览器进入网站可发现,该NodeJS已经可自动运行了,剩下的工作,就是好好研究NodeJS、Express和AngularJS,做一个真正属于自己的应用!
Nodejs 在阿里云主机Nginx下配置Express和Forever
一、Nginx站点与NodeJS站点共存的配置
首先,我们需要确保Nginx能够代理请求到NodeJS应用。假设Nginx使用了80端口,而NodeJS应用使用8080端口。
1. 使用LuManager建立NodeJS网站
在LuManager后台,使用“快速建站”功能建立NodeJS网站,例如testnodejs.com
,并配置多个NodeJS网站:
testnodejs.com *.testnodejs.com testnodejs2.com *.testnodejs2.com
这些域名应指向共同的NodeJS网站群根目录,如nodejs
目录。
2. 配置Nginx代理
在LuManager中为NodeJS网站配置Nginx,修改该NodeJS网站配置,在location
段添加如下代码:
location / {
proxy_pass http://127.0.0.1:8080;
}
这使得外部对testnodejs.com
、testnodejs2.com
等NodeJS网站的访问都转向了8080端口,NodeJS监听8080端口即可。
二、安装NodeJS
在阿里云CentOS 6.2环境中,可以使用以下步骤安装NodeJS:
wget http://nodejs.org/dist/v0.8.9/node-v0.8.9.tar.gz
tar zxvf node-v0.8.9.tar.gz
cd node-v0.8.9
./configure --prefix=/home/node/0.8.9
make
make install
安装完成后,配置系统环境使node
命令可用:
echo "export PATH=$PATH:/home/node/0.8.9/bin" >> ~/.bash_profile
source ~/.bash_profile
验证安装:
node --version
三、安装Express框架
使用NodeJS几乎都需要Express框架,可以通过以下命令安装:
npm install express -g
安装完成后,可以在网站目录下创建一个基于Express的应用:
express testapp
cd testapp
npm install
运行应用:
node app.js
默认端口是3000,如果需要改为8080,编辑app.js
文件,将端口号改为8080。
四、安装Forever后台管理器
使用Forever可以将NodeJS应用以后台守护进程的方式运行,确保网站的可持续运行。
安装Forever:
npm install forever -g
启动应用:
forever start app.js
停止应用:
forever stop app.js
为了实现自动启动,创建一个/etc/init.d/node
脚本:
#!/bin/bash
#
# node Start up node server daemon
#
# chkconfig: 345 85 15
# description: Forever for Node.js
PATH=/home/node/0.8.9/bin
DEAMON=/home/ftp/1520/weizt-20120918-tKx/weizt.com/app.js
LOG=/home/hosts_log
PID=/tmp/forever.pid
case "$1" in
start)
forever start -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
stop)
forever stop --pidFile $PID $DEAMON
;;
stopall)
forever stopall --pidFile $PID
;;
restartall)
forever restartall --pidFile $PID
;;
reload|restart)
forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
list)
forever list
;;
*)
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
exit 1
;;
esac
exit 0
赋予该文件可执行权限并注册服务:
chmod 755 /etc/init.d/node
chkconfig /etc/init.d/node on
重新启动系统,确保NodeJS应用能够自动运行。
通过以上步骤,你就可以在阿里云主机上成功配置Nginx、NodeJS、Express和Forever,从而搭建一个稳定可靠的Web应用。
感谢分享
收藏,感谢分享
好文章啊,收藏关注啦~
好文,顶起来~
赞,对我的帮助很大,非常感谢
赞,不过有些图片显示不了
强烈不建议你使用阿里去 linode性价比比阿里云高多了
很有帮助,多谢
非常好,必须收藏
阿里云不行了,你就提工单,立马有工程师给你解决
我用的就是阿里云,forever没有做到开机启动项里而已,http://www.9958.pw
赞一个
是不会,挂的几率比较小,如果挂了,上去手动重启下,我现在就是这么干的,个人的嘛,就先这样了
Perl is not installed 安装失败。。。。换了好几台机器都不行,阿里云 Ubuntu 14
mark
我正在做 哈哈 加个好友吧~~
不错 图挂了
forever 和 pm2 大家推荐用哪个呢?
mongodb 国内有好的服务商吗 没数据库你就把app放到阿里云上面也没有用啊
XEN的512M够玩这些吗 买不起好的呀…
forever 性能怎么样?
mark
mark
mark
mark
mark From Noder
Mark From Noder
mark From Noder
收藏了
mark
mark,5 年前发的贴。被人 mark 出来了。
这帖子也太老了吧 nodejs 0.8.9
哈哈,挖坟了
Nodejs 在阿里云主机Nginx下配置Express和Forever
一、Nginx站点与NodeJS站点共存的配置
-
进入LuManager后台,用“快速建站”建立NodeJS网站,例如
testnodejs.com
或*.testnodejs.com
。这使得多个NodeJS站点可以指向同一个NodeJS网站群根目录,例如nodejs
目录。 -
为NodeJS网站配置Nginx,修改该NodeJS网站配置,在Nginx的location段添加如下代码:
location / {
proxy_pass http://127.0.0.1:8080;
}
如此以来,外部对testnodejs.com
、testnodejs2.com
等NodeJS网站的访问全部转向了8080端口,NodeJS监听8080端口即可。
二、安装NodeJS
在阿里云CentOS6.2环境中,安装NodeJS的步骤如下:
wget http://nodejs.org/dist/v0.8.9/node-v0.8.9.tar.gz
tar zxvf node-v0.8.9.tar.gz
cd node-v0.8.9
./configure --prefix=/home/node/0.8.9
make
make install
安装完成后,配置系统环境,使node
命令可用:
echo "export PATH=$PATH:/home/node/0.8.9/bin" >> ~/.bash_profile
. ~/.bash_profile
三、安装Express框架
安装Express框架:
npm install express -gd
在项目目录中创建并运行基于Express的应用:
express testapp
cd testapp
npm install
node app.js
确保Express应用监听8080端口:
app.set('port', process.env.PORT || 8080);
四、安装Forever后台管理器
安装Forever:
npm install forever -gd
配置Forever作为系统服务:
chmod 755 /etc/init.d/node
chkconfig /etc/init.d/node on
配置文件/etc/init.d/node
示例:
#!/bin/bash
#
# node Start up node server daemon
#
# chkconfig: 345 85 15
# description: Forever for Node.js
PATH=/home/node/0.8.9/bin
DEAMON=/home/ftp/1520/weizt-20120918-tKx/weizt.com/app.js
LOG=/home/hosts_log
PID=/tmp/forever.pid
case "$1" in
start)
forever start -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
stop)
forever stop --pidFile $PID $DEAMON
;;
stopall)
forever stopall --pidFile $PID
;;
restartall)
forever restartall --pidFile $PID
;;
reload|restart)
forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
;;
list)
forever list
;;
*)
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
exit 1
;;
esac
exit 0
这样配置完成后,NodeJS应用会随系统启动自动运行。