大米云主机nodejs服务部署
眉宇传神
2017-04-16
当今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 |