就在刚才,我上上周买的阿里云服务器可以通过外网访问了,一把辛酸泪。如今越来越多的前端不务正业搞起后端来,力图做全栈工程师,不过这不是我的目标,我只需要一个可以响应前端请求的简单服务器,即使要研究应该也是研究网络配置之类的东西,概括的说就是前端偏后后端偏前的部分。
该配置教程废话较多,掺杂了很多吐槽的内容,文章顺序基本上就是我填坑的顺序,因为我比较累,所以整理顺序什么的就以后再说吧,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
挑选服务器
算起来接触计算机也得有20年了,从win95,win98,到win me,win2000,winXp,win7,win8,win10,大家看看全是微软的产品。在国内有个共同的认知,就是用Linux的人比较牛逼。因此,我的第一个服务器当然要用Linux,鉴于之前折腾过Ubuntu 14 TLS,于是购买阿里云的时候就选择了Ubuntu14 TLS x64。信心满满的登录阿里云后台,配置好域名和网址的解析之后打开浏览器输入域名——回车,啊嘞?难道不是应该提示域名未备案吗,为什么提示的是无!法!访!问!此!站!!!
初次连接服务器
再次登录阿里云后台,在实例后边找到一个按钮“远程连接”,点击完后打开一个新页面与此同时该页面弹出一个提示框,上边有个密码,这个要记下来以后有用,而且只显示一次。点击确定后又弹出一个输入框,输入刚才的密码,这样就进入终端了。啊嘞,为什么和我想的不一样,为什么是命令行的模样,为什么不是曾经用过的ubuntu的模样,经过百度得知:服务器上的linux系统只有终端的模式,GUI比较消耗系统资源所以并没有安装。当然,可以自己安装GUI,不过作为一个立志成为伟大程序猿的人,当然不能使用GUI了,熟练使用终端(命令行在linux里叫终端)的人才是程序猿里的金刚猿。。。既然要用终端,那么我还是使用xshell工具吧。
使用xshell连接
xshell的安装方式和连接方式一抓一大把,这里就不讲了,直接讲连接上远程服务器之后发生的事。
写好配置信息后点击连接,这里要求输入账号,第一次使用嘛,账号名自然是root,密码嘛,之前不是有个弹出框里给过密码了吗,点击回车服务器就会连上了吧哈哈哈哈哈。想多了,那是不可能的!!!密码不正确,为什么不正确,因为之前那个密码并不是ECS里这个实例的密码。那么实例密码在哪呢,再次百度得知,这个密码是在实例创建的时候设置的。我去,这实例又不是我创建的,只是我买的,翻遍了所有的短信和邮件,阿里云都没有告诉我他们把实例密码设置成了什么,怎么办?嗯,我告诉你怎么办:
在阿里云控制台-实例-更多-重置密码,直接重置密码而且不用输入原密码验证,修改之后别忘了重启实例,好了,重新打开xshell输入root&密码登录服务器吧。
配置nodejs
从小伙伴口里得知,购买的服务器只是一个空间,即使预装了操作系统也只是一个空空的操作系统,网站服务器什么的需要自己建设!!OMG,我以为所谓带了操作系统的服务器就可以直接访问,最起码也能给我返回一个Hello World吧。鉴于本人是前端,所以用nodejs搭建服务器应该是个不错的选择,而且我要求不高,能响应请求就可以了,数据库什么的暂时没需求,等用到的时候再说吧。
安装node及express
安装node有两种方式,一种是下载源码后编译,一种是下载已经编译好的包,我选的是第二种,为什么呢,因为源码编译过程中会报一个g++版本过低的错误,据说解决这个问题之后可能还会报Python的错误,本着效率最大化的想法,直接选择已经编译好的包绝对正确,先到nodejs的下载页面选好要下载的版本,执行:
wget https://nodejs.org/dist/v6.10.3/node-v6.10.3-linux-x64.tar.gz
下载完毕后执行:
tar node-v6.10.3-linux-x64.tar.gz
对文件进行解压缩,这样nodejs就被解压到了root/node-v6.10.3-linux-x64文件下,可以移动到其他目录里。执行:
vim /etc/profile
下面要修稿profile文件,/etc/profile储存了系统的环境变量,需要使用root权限登录并修改权限之后方可编辑:
chmod u+w /etc/profile
为文件赋予write权限。
打开profile文件,按i开启编辑模式,在最后一行添加
export NODE_HOME=你放置node的文件目录 export PATH=$NODE_HOME/bin:$PATH
点击ESC退出编辑,输入:wq
保存并退出,这样就把nodejs添加到了环境变量中,以后可以全局的使用node和npm了,否则的话会报-bash: node: command not found
这个错误,输入node -v
和npm -v
如果顺利输出了版本号,说明node安装成功了。
安装完node后,express的安装水到渠成,和所有npm包的安装方法一样,直接输入
npm install express -g
全局的安装就好了,cd到srv目录下建立一个文件夹www,进入该文件夹输入express chat-vue
创建一个node项目,express后面就是你的项目名。express会根据模板自动创建一套文件,包括:app.js并不是入口文件,入口文件在bin/www里边,运行www
node www
,这个node模板就被启动了。使用node xxx运行的项目在退出终端时会同步关闭,这当然不是我们想要的结果,这里推荐使用pm2,一个进程管理器,他会在你关闭终端连接后继续帮你运行服务器上的node程序。当然也有人推荐使用forever,不过比起pm2高大上的界面,我就不说什么了,嘿嘿嘿
安全组设置
真的万事俱备只欠东风了吗,哈哈哈哈,还是太天真。阿里云有个东西叫做安全组设置,就是那些ip可以访问,哪些端口可以被访问之类的限制,默认的只有-1,3389,22三个端口,自己设置的端口需要创建新规则,否则等待你的还是无法访问此站!!!
依次打开云服务器ECS-网络和安全-安全组,选择实例后面的配置规则,选择右上角的快速创建规则,按照图片设置:
点击确定保存规则。
打开xshell连接服务器,找到srv/www/下的项目文件中的bin文件中的www,使用vim打开,在29行 server.listen(port);里加一个参数host,一定要写内网IP,写在port后边,如果不写,默认ip地址为127.0.0.1。做完上边那些设置,通过域名或者ip加端口号就可以顺利访问服务器了,没有问题的话页面上会显示welcome to express,大功告成。