阿里云主机node.js发布环境部署

很久前一直纠结一个问题,写好的node程序如何发布到服务器主机上呢?在本地的是直接一个node app.js或者supervisor ./bin/www就可以了

但是你在服务器主机上,用户以一个域名或者一个IP地址来访问你的主机的时候,怎么办?

准备工作

  • 阿里云Linux主机
  • Xshell4
  • Xftp4
  • node.js程序,默认express

准备工作完成后,登录你的阿里云主机

  • 在Xshell4上登录你的Ecs,填写好你的主机外网IP,端口默认为22

  • 填写好的你的登录用户名,Linux主机登录用户名如果你在购买主机的时候没有设置的话默认的是root

  • 输入你的主机密码连接到你的服务器

  • 成功后会提示

现在,你的服务器Xshell环境已经进入

linux作为服务器专用操作系统,主要就是默默的待在机房提供各项网络服务的,为了节省系统资源,像windows那样华丽丽的用户桌面就默认不加载了

安装node.js环境

 依次执行以下指令:

sudo apt-get update

sudo apt-get install -y&nbsp-software-properties python g++ make

sudo add-apt-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install nodejs

注意:从 Node.js v0.10.0 开始,Chris Lea 仓库中提供的 Node.js 安装包默认包含了 npm 和 nodejs-dev

执行 sudo add-apt-repository ppa:chris-lea/node.js 这条指令时,系统会出现如下提示,询问你是否确定要添加上面的 PPA

这里必须是Enter

执行sudo apt-get install nodejs这条指令时,系统会出现如下提示

这里也是必须Y

上诉步骤完成后,执行node -v ,写这篇文章的时候node.js版本为v0.10.37,所以也会出现

node.js环境已经安装完毕

安装nginx

nginx安装比较简单,直接sudo apt-get install nginx

安装过程也会提示Y/N,统一Y

安装完成后 nginx -v

然后这时可以测试下了,具体nginx操作命令请百度,启动nginx

nginx 或者sudo service nginx restar

这个时候有些情况下会这样报错

这是因为80端口在Linux主机上已经占用,nginx默认占用的80端口

成功后在浏览器端输入你的外网IP,

查看响应头

说明nginx已经运行成功

上传并配置node程序

做过node的都知道,express绑定的是3000端口,当然这个端口可以自己设置,现在的思路就是,3000端口保持不变,用nginx把80端口代理到3000端口,转接到node.js上面去

用Xftp4登录你的服务器主机,具体步骤和上面Xshell4雷同,你会发现空空如也,当然,你还没有上传程序,上传程序建议先压缩后上传,不然你可以试试,很痛苦的,在服务器端解压缩,注意压缩为zip文件具体步骤下面有

下面配置nginx.conf,我这里安装的nginx的目录在/etc/nginx下

我的nginx.conf是这样配置的

    upstream nodesocket {
        server 139.129.15.150:3000 fail_timeout=20s;
        server 139.129.15.150:3000 fail_timeout=20s;
    }
    server {
    #将网站域名设置好,然后端口设置为8000,最后proxy_pass设置为http://127.0.0.1:3000,将所有从localost:8000的请求传递到nodejs程序去。
     #重启nginx
     #访问域名,就可以了
        listen 80;
        server_name 139.129.15.150 ;
        location / {
        proxy_pass http://nodesocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        }

 

 到这里,出来一个问题,如果你再次输入域名,会给你报404,怎么运行node.js呢?如何在服务器挂掉或者重启了自动启动node.js呢?

别怕,有forever,forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。

前面说过了 Chris Lea 仓库中提供的 Node.js 安装包默认包含了 npm 和 nodejs-dev

所以,直接在Xshell4中输入sudo npm install forever -g  ,注意forever需要安装的全局环境下

建议npm命令加上-d 可以看到安装进度

把你的node程序压缩并上传到服务器上

需要在你的Linux上安装一个叫做unzip的东东

apt-get install unzip

你在解压缩文件的时候会一直报错,权限不足

更改root文件夹下的权限为777

unzip Blog.zip

 

然后forever start bin/www

注意www文件里面的server.listen 需要加上第二个参数,你的服务器外网IP

 

posted @ 2015-05-05 12:53  Nmoand  阅读(4873)  评论(0编辑  收藏  举报