大米云主机nodejs服务部署

眉宇传神 2017-04-15
当今nodejs技术盛行,诸多服务器应用都使用nodejs编写而成。笔者发布了一款基于虚拟DOM的前端模板引擎Vdt,一直想找一台服务器搭建基于nodejs的官网来推广它,然而目前国内云服务器普遍价格昂贵,笔者小码农一枚,表示难以承受。直到金山云推出了物美价廉的大米云主机,笔者仿佛看到了曙光。于是赶紧买了一台,来部署了早已写好的Vdt官方网站。
下面就在大米云主机上部署nodejs服务的经过记录下来。
准备工作
大米云主机整个注册到购买流程非常简单,记得选好自己熟悉的操作系统,笔者一直使用Ubuntu系统,所以下面的所有操作都是基于Ubuntu的,其它系统可以作为参考。选错了系统也没关系,可以进入管理页重装成自己想要的系统(记得先关机)。
主机创建好后,就可以在管理页,点击“连接主机”或者使用任意终端登录到主机了。下面开始尽情折腾吧!
环境安装
1.Ubuntu系统可以通过apt-get命令安装软件,但是首次使用时,需要更新软件索引:
sudo apt-get update
2.通过以下命令安装nodejs,注意:Ubuntu下该软件包名为nodejs并非node
sudo apt-get install nodejs
3.由于nodejs默认程序名为node,所以我们需要给nodejs命令设置别名。修改~/.bashrc文件,添加如下别名声明:
alias node=’nodejs’
4.执行source命令,让.bashrc生效
source ~/.bashrc
至此nodejs环境已经安装完成,可以输入node -v命令来验证
但是Ubuntu官方软件源维护的nodejs版本太老(v0.10),现在都(v7.8)。如果你的应用需要支持ES6语法,那我们需要安装到更高级的版本。对于生产环境,我们应该选择稳定并且长期支持的版本(v6.10)。下面以它为例来介绍怎么下载nodejs安装包来安装nodejs环境。
1.下载安装包
wget https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-x64.tar.xz
2.解压
tar -Jxvf node-v6.10.1-linux-x64.tar.xz
3.将可执行文件加入PATH环境变量。在~/.bashrc中添加:
export PATH=/home/ubuntu/node-v6.10.1-linux-x64/bin:$PATH
如果你之前按照从官方源安装的步骤设置过alias,记得将~/.bashrc中的别名设置删掉,然后输入以下命令让别名立即失效:
unalias node
4.让~/.bashrc立即生效
source ~/.bashrc
5.验证:输入以下命令,正确打出版本号,则表示安装成功
node -v
npm -v
部署代码
环境配置好后,就可以下载我们自己的应用程序代码运行了。
1.笔者代码使用github管理,所以先要安装git版本管理工具
sudo apt-get install git
2.下载代码
git clone https://github.com/Javey/javey.github.io.git
3.安装应用
cd javey.github.io
npm install
4.启动服务
node server.js
5.对于生产环境,我们应该用node进程管理工具pm2来启动服务
npm install pm2 -g
pm2 start server.js -n vdt
笔者服务监听的端口并非传统的80端口,而是64739,服务启动后,发现并不能访问。原因是大米云主机为了提高安全性,加入了防火墙设置。放开对该端口的限制也很简单,登录控制台防火墙管理,针对64739端口添加一条tcp协议的防火墙规则即可。大米云主机在提高了安全性的同时,又提供了非常简单的配置界面,这点相当赞。

再次访问服务,熟悉的网站映入眼帘。
绑定域名
既然是要建站,那就免不了要绑定域名,并且使用80端口访问服务。如果你的云主机只部署一个服务,那直接设置域名cname解析到云主机公网ip即可。但对于普通站点,如此强大的云主机就部署一个服务,未免有点浪费。大多数情况我们都是尽可能榨取服务器资源,在服务器上部署多个服务,监听不同的端口,然后前面设置nginx配置vhost指向不同的服务来达到一台云主机部署多个服务的目的。下面讲讲如何在大米云主机上配置nginx。
1.安装nginx
sudo apt-get install nginx
2.配置vhost,以www.vdt.com域名为例
在/etc/nginx/conf.d新建一个名为www.vdt.com.conf的文件
sudo touch www.vdt.com.conf
然后写入以下配置信息(需要root权限)
server {
        listen 80;
        server_name www.vdt.com;

        location / {
                proxy_pass http://127.0.0.1:64739/;
        }
}
3.重启nginx
sudo /etc/init.d/nginx reload
4.设置域名www.vdt.com解析到云主机公网IP即可,由于该域名笔者买不起,所以只能在本地配置host访问来进行验证了。
至此整个服务就部署起来了。
总结
在大米云主机上部署服务,整个过程相当顺利,对于熟悉Linux系统的同学来说,肯定信手拈来。唯一需要注意的是,大米云主机对端口的安全限制,如果你部署的服务非传统默认端口,则需要添加相应的规则。
另外,对于网站服务,如果静态资源体积较大,1M带宽可能成为瓶颈。不过大米云主机支持带宽升级,对于预算充足的同学,可以选择升级到更大的带宽来解决问题。如果只是像笔者一样建个小站,可以选择cdn产品,将所有静态资源发布到cdn,以此来减少对云主机带宽的占用。
最后附上小站连接(暂时没有买到合适的域名):
http://120.92.83.240:64739/vdt/index.html

Global site tag (gtag.js) - Google Analytics