admin 管理员组

文章数量: 887019

在腾讯云上搭建基于Nodejs的网站

能拥有一个完全由自己创建的网站是很多web工程师最初的梦想:自己做设计,自己切界面,自己写交互,自己搭后台,自己架构数据库,自己配服务器。

好吧,实话实说,配服务器这一步曾经阻挡了我实现梦想的脚步,当年的我就是因为讨厌Linux服务器无休止的黑框框,而毅然决然地由后台转向了前端。我讨厌配置这些东西,因为它们对我而言既枯燥,又没有写出一点东西的那种成就感。我对服务器这种没有图形界面的东西感到恐惧。

在云服务器上的配置和项目部署完全没有想象中的困难,甚至可以说比较简单,不得不说,它为我的梦想提供了助力。我写这篇文章的目的,一是帮助大家学习如何一步步把自己的项目部署到服务器上,尤其是针对前端Nodejs的开发者。二是鼓励大家尝试新鲜事物,其实很多东西没有你想象的那么难!!

在腾讯云上完成注册、登录与实名认证

我想这里不用我特别强调什么,简单的按照流程走就可以了

但注意你必须开通QQ钱包。

完成学生认证、抢学生优惠劵

腾讯云为学生提供“1元"云服务器和免费域名的扶持,点击【合作与生态】->【云+校园】,在这个页面进行抢劵。每天有200个名额,中午12点开抢,我12点整抢的,不费什么劲儿就抢到了

说明一下,实际上你抢到的是一张价值64元的云服务器代金券和一张价值25元的域名代金券,当你买云服务器的时候,可以直接拿那种64元的代金券抵现金。云服务器有很多种配置,价格从65元到上千元不等,所谓的1元云服务器是指的你选择的是65元的那种低配入门版云服务器,减去64元,只用花1元。

注意,云服务器优惠券是按月领取,而域名优惠券则是按年领取。获得优惠名额享受云+校园扶持的用户,连续3个月未主动领取服务器代金券,将被认为主动放弃优惠特权,不再享受优惠。若需要享受优惠,须参与优惠资格的抢购。

购买云服务器

点击【云产品】->【云服务器】,点击立即选购

学生入门级云服务器

如果你是一名刚刚接触云服务器的学生,仅仅打算入门学习,按照下面网址的教程就能选到入门级云服务器的配置,也就是说,你只需要支付1元。

http://bbs.qcloud/thread-21113-1-1.html

至于何种配置和何种镜像(下面要说到)能满足你的其他需求,不属于本篇博客的讨论范围,我强烈建议你自己百度。

选择地域

选择地域时要考虑你客户群体的所在位置,尽量选择离你客户群体近的位置。

云硬盘和本地硬盘

如果业务对于磁盘IO没有十分苛刻的要求,建议还是选购云盘;如果业务对于IO有特殊要求,那么还是选购本地盘。

选择镜像

在选择了地域与机型之后,我们需要选择镜像。腾讯云为我们提供了公共镜像和服务市场两种。说得直白点,公共镜像就是一个光秃秃的操作系统,里面什么软件都没有,需要我们自己下载安装。而服务市场则为我们提供了多种不同的镜像,里面根据我们的不同需求为我们预先安置了不同的软件。举个例子,如果我们想要搭建一个java后台的服务器,那么我们可以选择预先安装了Tomcat的镜像。选择何种镜像一般不会影响费用,选择镜像后我们也可以手动安装其它软件。

在这里,我们选择【服务市场】-> 【从服务市场选择】

里面提供了各种镜像供我们选择,搜索Node,选择第二个叫做nodejs运行环境的镜像,里面为我们预先安装了Node+Nginx+mongodb+mysql,方便我们一会儿的项目部署。

下面的链接会告诉你有关这个镜像的更多细节:

http://market.qcloud/products/334?productId=334

准备工作

进入控制台

购买完毕后,进入控制台,几分钟后,就能够找到刚才购买的服务器,系统也会给你发邮件告知你该服务器的信息。如果你在购买时未重新设置密码,可以在邮箱里找到系统为你自动生成的密码。

首次进入网站

在浏览器地址栏输入公网IP,作为Nodejs开发者的你会看到熟悉的场景,是不是有点激动的想哭

下载工具软件

之后我们需要下载两个工具软件

(1)putty

可以通过公网IP连接至远程服务器,然后类似于CMD命令行操作的方式,控制我们的云服务器。登录时用户名为root。

提示没有使用过Linux的同学,在Linux系统中输入密码时是没有任何反应的,不会有“*”占位符,输入完毕后直接点击回车就可以了。

(2)WinSCP

可以通过公网IP连接至远程服务器,然后以图形界面的方式操作云服务器里的文件。我们可以使用它轻松的把文件上传到云服务器上(当然后面我们会介绍一种更简单的利用IDE直接上传的方式),也可以通过它来操作云服务器的文件系统,设置开机服务器自启等操作。

这两个工具可以直接从百度上下载到。

项目搭建与部署

当然,你可以直接修改你刚才看到的,在云服务器上的demo(位置在/data/home/www/ ),但我并不想这么做。接下来,我要教大家如何利用Webstorm集成开发环境把一个新的项目与服务器相关联,我们可以利用它向服务器上上传本地文件,也可以把服务器上的文件下载到本地。

生成网站骨架

这一步并非本文的主题,我想我只需要点到为止。

打开webstorm,通过下面的命令使用express生成网站的骨架:

express --hbs  (这里我默认使用handlebar作为模板引擎)
npm install

然后我将自己事先准备好的文件(index.html等)整合到项目中, 然后修改index.js路由文件:

router.get('/', function(req, res, next) {
  // res.render('index', { title: 'Express' });
  res.sendfile('views/index.html');
});

修改www文件中的端口为3001(因为3000端口被那个云服务器上默认的demo程序占用了,我们一会儿会再改回来的)

将webstorm与云服务器相关联

点击【tools】->【deployment】->【configeration】进行设置

FTP host填上公网IP地址,再输入了用户名和密码之后,就可以点击【Test FTP connection】进行连接测试,如果测试失败,则需要点击Advanced Options按钮,勾选Passive mode选项。测试成功后,你可以在【...】处选择你的项目要上传到云服务器的哪个位置。 然后在Mappings 选择映射目录分别为本地,发布或web路径。之后,你就可以右击项目文件夹进行upload、download和对比服务器上的文件与本地文件了。

如果你觉得本文描述的不够详细,可以参考下面的资料:

https://my.oschina/u/141149/blog/678638

第一次开启属于自己的网页

通过putty登录进云服务器系统中,cd到你项目的位置,输入

node ./bin/www

然后,在浏览器输入

公网IP:3001

即可访问到自己刚刚上传的index.html。

通过init.sh文件设置默认启动项

上面的操作存在一个问题,首先,当我把putty关闭后,过一段时间后,服务器上的相关服务就会停止,你也就不能再访问公网IP:3001了,其次,node默认的端口3000被占用,使我们每次输入网址时都要输入端口号,这也是不可接受的。

我们可以通过修改云服务器上/data/home中的init.sh文件来解决这个问题。这个文件中,镜像为我们事先配置了开机即启动demo的小程序,我使用的是最简单的办法,把demo程序的路径换为我们新建的项目的路径就可以了(我把项目上传到了/data/home/www/helloCloud里)。当然这里我们可以学到如何将某项服务设置为在服务器上一直进行。

在腾讯云的控制台重新启动服务器,之后,打开浏览器,输入公网IP(当然我们要把项目中index.js里的端口号改回来),即可访问到项目的首页。只要我们的云服务器处于运行状态,我们就可以时刻访问我们的网站。

购买并解析域名

在域名购买处购买域名,然后进行实名认证(需要上传身份证照片或扫描件),它说审核要1到3日,但我5分钟就审核通过了。之后,进行域名解析,将域名与你的项目相关联,然后,然后就可以了。

打开浏览器,输入你的域名,就可以访问到你设置的首页。

后续其他工作

限于篇幅,我只给大家介绍了在腾讯云上搭建基于Node网站的最基本流程,至于如何连接数据库,网站备案等操作需等我静下心来,找个空闲的时间再慢慢和大家分享。


作者: 圣经的旋律 
链接:http://www.imooc/article/16083
来源:慕课网

本文标签: 腾讯 网站 nodejs