能拥有一个完全由自己创建的网站是很多web工程师最初的梦想:自己做设计,自己切界面,自己写交互,自己搭后台,自己架构数据库,自己配服务器。
好吧,实话实说,配服务器这一步曾经阻挡了我实现梦想的脚步,当年的我就是因为讨厌Linux服务器无休止的黑框框,而毅然决然地由后台转向了前端。我讨厌配置这些东西,因为它们对我而言既枯燥,又没有写出一点东西的那种成就感。我对服务器这种没有图形界面的东西感到恐惧。
在云服务器上的配置和项目部署完全没有想象中的困难,甚至可以说比较简单,不得不说,它为我的梦想提供了助力。我写这篇文章的目的,一是帮助大家学习如何一步步把自己的项目部署到服务器上,尤其是针对前端Nodejs的开发者。二是鼓励大家尝试新鲜事物,其实很多东西没有你想象的那么难!!
我想这里不用我特别强调什么,简单的按照流程走就可以了
但注意你必须开通QQ钱包。
腾讯云为学生提供“1元”云服务器和免费域名的扶持,点击【合作与生态】->【云+校园】,在这个页面进行抢劵。每天有200个名额,中午12点开抢,我12点整抢的,不费什么劲儿就抢到了
说明一下,实际上你抢到的是一张价值64元的云服务器代金券和一张价值25元的域名代金券,当你买云服务器的时候,可以直接拿那种64元的代金券抵现金。云服务器有很多种配置,价格从65元到上千元不等,所谓的1元云服务器是指的你选择的是65元的那种低配入门版云服务器,减去64元,只用花1元。
注意,云服务器优惠券是按月领取,而域名优惠券则是按年领取。获得优惠名额享受云+校园扶持的用户,连续3个月未主动领取服务器代金券,将被认为主动放弃优惠特权,不再享受优惠。若需要享受优惠,须参与优惠资格的抢购。
点击【云产品】->【云服务器】,点击立即选购
如果你是一名刚刚接触云服务器的学生,仅仅打算入门学习,按照下面网址的教程就能选到入门级云服务器的配置,也就是说,你只需要支付1元。
http://bbs.qcloud.com/thread-21113-1-1.html
至于何种配置和何种镜像(下面要说到)能满足你的其他需求,不属于本篇博客的讨论范围,我强烈建议你自己百度。
选择地域时要考虑你客户群体的所在位置,尽量选择离你客户群体近的位置。
如果业务对于磁盘IO没有十分苛刻的要求,建议还是选购云盘;如果业务对于IO有特殊要求,那么还是选购本地盘。
在选择了地域与机型之后,我们需要选择镜像。腾讯云为我们提供了公共镜像和服务市场两种。说得直白点,公共镜像就是一个光秃秃的操作系统,里面什么软件都没有,需要我们自己下载安装。而服务市场则为我们提供了多种不同的镜像,里面根据我们的不同需求为我们预先安置了不同的软件。举个例子,如果我们想要搭建一个java后台的服务器,那么我们可以选择预先安装了Tomcat的镜像。选择何种镜像一般不会影响费用,选择镜像后我们也可以手动安装其它软件。
在这里,我们选择【服务市场】-> 【从服务市场选择】
里面提供了各种镜像供我们选择,搜索Node,选择第二个叫做nodejs运行环境的镜像,里面为我们预先安装了Node+Nginx+mongodb+mysql,方便我们一会儿的项目部署。
下面的链接会告诉你有关这个镜像的更多细节:
http://market.qcloud.com/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程序占用了,我们一会儿会再改回来的)
点击【tools】->【deployment】->【configeration】进行设置
FTP host填上公网IP地址,再输入了用户名和密码之后,就可以点击【Test FTP connection】进行连接测试,如果测试失败,则需要点击Advanced Options按钮,勾选Passive mode选项。测试成功后,你可以在【…】处选择你的项目要上传到云服务器的哪个位置。 然后在Mappings 选择映射目录分别为本地,发布或web路径。之后,你就可以右击项目文件夹进行upload、download和对比服务器上的文件与本地文件了。
如果你觉得本文描述的不够详细,可以参考下面的资料:
https://my.oschina.net/u/141149/blog/678638
通过putty登录进云服务器系统中,cd到你项目的位置,输入
node ./bin/www
然后,在浏览器输入
公网IP:3001
即可访问到自己刚刚上传的index.html。
上面的操作存在一个问题,首先,当我把putty关闭后,过一段时间后,服务器上的相关服务就会停止,你也就不能再访问公网IP:3001了,其次,node默认的端口3000被占用,使我们每次输入网址时都要输入端口号,这也是不可接受的。
我们可以通过修改云服务器上/data/home中的init.sh文件来解决这个问题。这个文件中,镜像为我们事先配置了开机即启动demo的小程序,我使用的是最简单的办法,把demo程序的路径换为我们新建的项目的路径就可以了(我把项目上传到了/data/home/www/helloCloud里)。当然这里我们可以学到如何将某项服务设置为在服务器上一直进行。
在腾讯云的控制台重新启动服务器,之后,打开浏览器,输入公网IP(当然我们要把项目中index.js里的端口号改回来),即可访问到项目的首页。只要我们的云服务器处于运行状态,我们就可以时刻访问我们的网站。
在域名购买处购买域名,然后进行实名认证(需要上传身份证照片或扫描件),它说审核要1到3日,但我5分钟就审核通过了。之后,进行域名解析,将域名与你的项目相关联,然后,然后就可以了。
打开浏览器,输入你的域名,就可以访问到你设置的首页。
限于篇幅,我只给大家介绍了在腾讯云上搭建基于Node网站的最基本流程,至于如何连接数据库,网站备案等操作需等我静下心来,找个空闲的时间再慢慢和大家分享。