技术支持 云市场镜像产品 其它镜像环境 NODE 运行环境镜像使用指南

NODE 运行环境镜像使用指南

操作系统:centos 6.5

软件明细:Nodejs - Mongodb - vsftpd

注:各个软件版本以云市场镜像中产品介绍为准。

在镜像环境中,/root/nodejs.tar 是安装镜像环境的脚本,您可以在 centos 6.5 系统中自行采用此脚本安装,安装后的环境跟镜像里初始化的环境一致。值得注意的是,如果采用此脚本安装镜像环境,需要 chmod +x install.sh 即可执行。

在镜像环境中,/root/nodejs 是安装环境的主目录,镜像中的环境是在此目录下编译安装的。

ftp密码 ftp 的用户名 / 密码保存在系统目录下:

/alidata/account.log文件中。

修改 ftp 密码:

用 root 用户登录系统,然后执行下面命令:

passwd www

然后输入您的 ftp 新密码。

注意:用户名 www 为镜像默认采用的 ftp 用户,关于如何再添加新的 ftp 用户,在这里不再做过多介绍,可以参考系统目录 /etc/vsftpd 中关于 ftp 的配置文件,再相应配置。

Mongod 密码 Mongod 用户名 / 密码保存在系统目录下 :

/alidata/account.log 文件中。

用 admin 帐号登录 mongod 服务器

mongo -u admin -p {这里是密码} admin 出现

  MongoDB shell version: 2.6.3
  connecting to: admin
> 

表示正确连接数 admin 数据库。

之后你可以修改 admin 密码 :

db.changeUserPassword('admin','123123');

软件的主目录:/alidata

Nginx 主目录:/alidata/server/nginx Node 主目录: /alidata/server/node Mongod 主目录: /alidata/server/Mongod ftp 主目录:/alidata/www apache 主目录:/alidata/server/httpd apache 配置文件主目录:/alidata/server/httpd/conf 日志目录:

/alidata/log/mongod 为 mongodb 存放日志主目录 /alidata/log/nginx 为 nginx 存放日志主目录 init目录:

/alidata/init 为当用户用镜像创建系统后,当且仅当用户在第一次启动系统的时候,调用此目录下的脚本来初始化 ftp 的密码(随机密码)。

mongod:

/etc/init.d/mongod start/stop/restart
ftp:

/etc/init.d/vsftpd  start/stop/restart
node:

pm2 start /alidata/www/default/app.js -n test -i max

备注:pm2 是一个非常优秀的 node 应用的进程管理器,更多 pm2 的命令请自行参考相应教程。

如何卸载镜像环境中安装的软件,可以参考如下命令完成卸载:

 cd  nodejs
chmod +x uninstall.sh
./uninstall.sh

备注:执行以上卸载,会清理镜像环境的 /alidata 目录,请卸载前自行备份好相应数据。

1、在使用镜像安装系统后,有了 nodejs 环境。可以进行简单的基于 nodejs 的开发。比如 打开编辑器 ,创建一个 hello.js 的文件,输入以下代码:

console.log("Hello World");

保存该文件,并通过 nodejs 来执行

Node hello.js 正常的话会在终端输出 Hello World 。

更多可参考网上的教程。

http://www.nodebeginner.org/index-zh-cn.html

node.js 安装扩展模块 比如安装 MongoJS 模块,利用api 访问 mongodb 。

利用 node 内置的包管理工具 npm 来安装 mongojs :

npm install mongojs

我们就可以开发我们的 js 应用并连接 mongodb 服务器了。

var databaseUrl = "mydb"; // "username:password@example.com/mydb" var collections = ["users", "reports"] var db = require("mongojs").connect(databaseUrl, collections); databaseUrl 包括数据库服务器host和port以及需要连接的数据库名。

默认的 host 是 localhost,port 是 27017。

如果你要用开发环境默认的值,对于我们这个应用,databaseUrl 仅仅包含实际的数据库名字。

1、在使用镜像安装系统后,我们默认部署了一个 node.js 的 demo 网站。在 /alidata/server/httpd/conf/vhosts 目录下,我们可以看到一个默认的配置文件 default.conf 。关于如何配置网站,我们可以参考该文件中的内容:

server
{
  listen 80;
  server_name _;
  location / {
      proxy_pass http://127.0.0.1:8088;
      proxy_set_header        Host $host;
      proxy_set_header        Accept-Encoding 'gzip';
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  }
  access_log /alidata/log/nginx/access.log;
}

从以上配置文件我们会发现,“proxy_pass http://127.0.0.1:8088” nginx 将所有的请求全部转发到本地的 8088 端口上。

2、从/alidata/www/default/app.js 我们会发现 node 会建立 http 服务,并在本地启动 8088 的 http 监控服务端口:

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Node.js! \n');
}).listen(8088);
console.log('Server running on port 8088.');

3、进入 /alidata/www/default/ 目录,我们用以下命令就可以启动我们的 node http 服务:

pm2 start app2.js -n test2 -i max 然后我们在浏览器中输入:“http://... ”(...为我们服务器的公网 ip),就默认可以访问到 node http 服务返回的内容:

以上内容的访问,是通过nginx作为web前端反向代理,得到我们 node http 服务返回的结果,当然我们也可以在浏览器中输入 : “http://...:8088”(8088 是我们 node 在本机起的 http 服务监听端口,此端口可以根据需求自行在代码中设置) :

说到这里,为什么我们要 node http 通过前面的 nginx 转发呢?

这是因为 nginx 作为一个轻量级 http 七层负载均衡,能够针对 http 服务进行 rewrite规制、反向代理、缓存设置等等很多灵活的功能,nginx+node 的组合,就如同 nginx+php、nginx+tomcat 等相应的组合,能够让后端http服务更加稳定、灵活、及高效。