买了阿里云之后

终于战胜拖延症,备案好了域名,下狠心买了一个阿里云(低配打了折的还得好几十一个月,宝宝心里苦~)。苦归苦,web环境(主要是为了node应用服务)还是要搭建起来的,开车了,请坐好扶稳!!!

设计台词

一、前戏

除了购买之前需要先买一个域名以及备案,购买的过程中也有事情需要注意。

阿里云实际上可以看做一台计算机,在买计算机之前,了解配置是必不可少的一步,此前我也咨询过朋友,然而没有实践经验,难以真正理解。反正从无到有,反正阿里云的配置可以弹性变更,莫不如听信阿里的谗言,选一个个人入门型的。

设计台词

其它的配置都帮勾选好了,唯独操作系统是需要自己动手的,在windows和linux之间,请不要犹豫,放弃windows,因为这是服务器,即使习惯了windows,也应该跳出自己的思维舒适区。然而,linux系统也还有好几种,这个时候该干嘛?没错,谷歌(或者度娘)。网上有各种优劣对比,走到了这个阶段也应该知道自己的侧重点了。我选了一个Ubuntu 14.04 64位,Ubuntu和Debian都使用的apt-get的方式安装软件,这是我更熟悉的一种方式,并且Ubuntu基于Debian开发,有比Debian更加激进的软件更新策略,嗯,年轻就应该多尝试。

自己折腾、实践,选错了也没多大点事,因为系统是可以重装的

二、连接

拿到阿里云实例之后,第一要务就是能够远程连接,我发现我在管理界面中点击远程连接按钮进入命令行连接的时候我是不知道root密码的,好吧,重置密码吧,重置密码之后一定要记得重启,否则密码是无效的

拿到root密码,ip,其实就可以把管理后台搁在一边了,可以使用你习惯的终端(这里我mac shell),以ssh的方式远程登录,以sftp的方式来上传下载文件,服务器上编辑文件使用vi

这里全程使用命令行的方式操作,木有图形界面,请试着接受,习惯之后,你会发现,这个逼完全是可以装的,没有想象中复杂,却比想象中迅捷

设计台词

连接命令:

    //ssh连接
    # ssh root@yourip
    # your root pass

    //sftp连接
    # sftp root@youip
    # you root pass

命令很多,不是本文的重点,网上教程可以搜索到很多,可以找来看看,不需要每个命令都记住,有印象即可,用到可以去查,常用的自然会记住

三、尝试python启动最简单的web服务

使用购买好的域名解析到实例对应的公网ip。

使用ssh命令连接之后,需要确定一个保存web文件的目录,在/home目录下创建一个WWW以及WWW/static。使用sftp连接,上传一个index.html,内容嘛as you wish,主要是用来测试的

    //ssh
    #cd /home
    #mkdir WWW
    #cd /WWW
    #mkdir static
    //sftp
    # cd /home/WWW/static
    # lcd dir(本地index.html所在目录)
    # put index.html

Ubuntu默认已经安装了python,直接输入python命令如果能进入python命令行就可以证明此言不虚了,一个命令就可以启动一个最简单的web服务,在浏览器输入:http://youdomain/index.html,如果访问正常,那么第一步就成了

    # python -m SimpleHTTPServer 80 
设计台词

四、安装git

git无疑已经是最流行的代码管理工具,而github这个基于git进行版本控制的源代码托管服务也是最流行。我的应用代码也托管在github上面,安装git之后,我可以方便的从github更新最新的代码,这一点很重要。另外Ubuntu的一些软件也可以基于git安装

    //安装
    # apt-get install git-core
    //使用
    # cd /home/WWW
    # git clone https://github.com/zengwenfu/h5-creator.git
    # your github username  
    # your github password

五、安装nvm、node

我这里需要部署的是基于node的web应用,所以需要安装node,为了能在多个node版本中切换如流,需要安装一个node的版本管理工具nvm

    //前面我们已经按照了git,所以可以使用git
    # git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`  
    
    //编辑环境变量文件
    # cd
    # vim .bashrc
    //增加
    source ~/.nvm/nvm.sh   
    // 添加到系统
    # source .bashrc

如此nvm便安装成功了,可以使用nvm来方便的安装node了,

    //查看可用的node版本
    # nvm ls-remote
    //安装指定版本,默认已经安装了npm了
    # nvm install 5.8.0

进入上一步中在github中下载的代码,安装依赖包,执行启动命令,不过好像出了点错误

    # cd /home/WWW/h5-creator
    # npm install
    # npm start
设计台词

六、安装mongodb

上一步报的错误是因为h5-creator使用了mongodb,然而服务器上没有安装所致,所以mongodb也得安装上

    //添加mongodb签名到APT
    # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
    //创建/etc/apt/sources.list.d/mongodb-org-3.2.list文件并写入命令
    # echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
    //更新软件源列表
    # apt-get update
    //安装mongodb(默认是安装稳定版)
    # apt-get install -y mongodb-org=3.2.9 mongodb-org-server=3.2.9 mongodb-org-shell=3.2.9 mongodb-org-mongos=3.2.9 mongodb-org-tools=3.2.9

安装成功之后,默认已经自启动,重新到/home/WWW/h5-creator中运行npm start即可正常运行,由于这个node服务默认使用了3000这个端口号,得输入域名加端口才可以访问,当然可以改为监听80端口,便可以直接输入域名访问应用。然而,倘需要在服务器中部署多个node应用监听不同的端口,则必有占不到80端口的应用,如何在访问网站的时候省去端口号呢,这需要nginx的反向代理,详情请往下读

在此之前还有一个问题,启动了node服务之后,终端界面停留在了node服务日志的输出界面中,退出终端,则服务也跟着被中断了,所以还需要一个管理node进程的pm2。当然pm2解决的问题不单是退出终端界面不中断服务,众所周知,node是单线程的,倘若应用出现了未捕获的异常,那么进程将中断,服务也就中断了,线上产品如此,那是灾难性的,使用pm2管理node进程,可以在出错的时候重启。

类似的还有基于python的supervisor

七、安装pm2

pm2是基于node的模块,使用npm全局安装即可,不过一定要全局安装,安装成功使用pm2代替node启动node服务

    //安装
    # npm install pm2 -g
    //进入h5-creator
    # cd /home/WWW/h5-creator
    //启动服务
    # pm2 start server.js

    //pm2 其它常用命令
    //查看node进程列表
    # pm2 list
    //显示特定进程详情
    # pm2 show id
    //重启
    # pm2 restart id
    //停止
    # pm2 stop id

如此启动之后,终端不会停留在node应用日志界面,你可以安安静静的离开了~

mei.jpeg

八、安装nginx

使用nginx的反向代理,可以将同一台服务器上监听不同端口的服务,都能以80端口作为代理入口,定向到特定的服务

    //安装
    # apt-get install nginx

nginx的配置文件在/etc/nginx目录,查看nginx.conf发现如下一句

    include /etc/nginx/conf.d/*.conf;

所以的配置文件加入conf.d目录即可,具体的配置规则,三言两语也说不清楚,需要找点资料稍微系统的看下,这里只挑我的配置中的关键部分进行说明

     listen       80;
     server_name  h5.facemagic888.com; //域名绑定
     server_tokens off; ## Don't show the nginx version number, a security best practice

     root   /home/WWW/h5-creator;
     index  index.html index.htm;

     .......

     location / {
        ...
        proxy_pass http://localhost:3000; //代理定向到localhost:3000
     }

我注册的域名是facemagic888.com,可以解析www.facemagic888.com这个一级域名,还可以解析诸如h5.facemagic888.com的二级域名,由于一级域名有别的用途(个人网站,开发中),所以这个h5在线生成工具给了一个二级域名h5.facemagic888.com。这个域名解析到服务器的ip,通过80端口访问服务器(默认无需输入)的时候,nginx会转发到服务器的3000端口应用进行处理

至此,阿里云的部署配置算是告一段落了,其它的什么问题,运行的过程中再观察了,抄小路,去访问一下部署好的网站吧:http://h5.facemagic888.com/

总结

说起来完成整个过程只有8步,但是涉及到的知识点还是蛮多的,一步一步慢慢尝试慢慢品,会有很多收获,just do it

菲麦前端专题,汇聚前端好文,邀您关注!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容

  • <<编程基础-语言JavaScript.Nodejs.Mobile>>https://github.com/ope...
    燕京博士阅读 918评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,642评论 18 139
  • 人们常说,有梦想便有了一切。然而,是否真正了解梦想的本质,还不得而知。一切,都要从头开始。 首...
    陈稳同学阅读 310评论 0 1
  • 黑夜总是美丽诱人,藏着许许多多只有自己知道的故事,遥看万家灯火,祈求这一生一世的安稳,童话般的和和美美。 没有安全...
    书辰阅读 595评论 0 0
  • 惊雷响彻天空,雷声隆隆, 吹响聚合的号令。 同学们赶快动身, 从天涯,从海角, 一起向着王寨四中急行。 再见那样的...
    Z0001阅读 204评论 2 2