增值你的C++技能,C++成为WEB后台“颜值 ”担当(三)

第二篇我们画出以C++高性能WEB应用系统的部署架构。共分5类机器,再看一眼:


其中2号是未来业务发展的压力的增大时,首选的不断横向扩展机器,所以图中画了2-1、2-2、2-3,其台数多少仅影响性能,因此今天我们就将它缩略为一台。另外,5号机用于实现从3号机(缓存)单向地向4号机(数据)传递数据。为进一步简化,本文暂时将5号机和3号机合并。



这么一来,结构简单了许多:



我们画出0号机,代表最终用户的PC机,手机、平板等,是为了最后一次提醒大家家提醒第(二)篇提到几点:

1) 一方面系统中许多功能,比如前端页面的渲染(展现),天生就是在这些机器上运行。
2)另一方面,我们倒过来需要考虑,主动将某些前后端都可以做的工作,分摊(推给)到用户终端上去做。(而不是光想着在后台使劲)。


提醒完毕。0号机暂时可以不理它了。看1到4号机,首先解决大家学习的问题:这四台当然可以完全合并成一台就好。


有人反应微信公众号里,写太长的文章效果不好。这一篇我们就将本篇要用到的几项工具准备好。到下一篇开始写个C++ WEB应用的“Hello World”。然后将来再根据需要,继续安装新工具。


(一)选操作系统

接下来确定后台服务器使用的操作系统 :当然是 Linux。

安装Linux而不是Windows,因为:

1)可以为节省巨大的环境准备工作,大量C/C++开源软件对Linux(以及GCC)更加友好(包括我们这个小项目),让我们早点上手写代码,而不是在折腾一堆如何编译如何安装等。

2)针对我们使用C++开发后台,多数情况下这两者的搭配可以有更好的性能。

3)项目实际上线后,在远程维护等工具链上,Linux有着成熟完整的“生态”,借用某视的宣传口号已经“化反”了。
4)无论从技术上考虑写C++后台服务,还是从业务上考虑写WEB后台,Linux是主流。


出于简单、方便、网上资料多这三个原则,Linux就选Ubuntu,上Ubuntu中国官网(http://www.ubuntukylin.com/),下载写本文时最新的16.04版的Ubuntu Kylin就好了。


说到选操作系统 ,我们这立即和两类人说再见。一类是:啊不,我用惯了Windows,我觉得Windows一切都好,我不想换不想换不想换……行,您好好用好Windows,别玩编程了。另一类是另一个极端:什么?用Ubuntu这么大众平民化的Linux?太丢身份了,我必须从源代码自行编译一个Linux出来,至少我也要用上CenterOS嘛,听说那才叫专业……


因此,大家手上要有一台电脑,要么装Ubuntu,要么装windows然后下载个虚拟机软件(比如Virtual Box),在上面安装一套Ubuntu就好。我推荐后面那个方案(如果你的机器内存足够的话)。


在实际项目中,我的开发机就是Ubuntu,后台服务也上Ubuntu Server。我不是说Ubuntu Server是最好,而是说对于当下只有数百万用户量的情况下,老板又不请专业的服务器系统管理员的情况下,这是最好的选择。


(如果你阅读本系列文档,居然是期望成长为一名优秀的后台服务器管理人员的话,那当然是来错地方了。如果你是一名程序员,学习时需要了解后台服务运行环境的知识,那我们继续)。


操作系统搞定,下面就是安装环境。尽管学习时就一台机器,但我们还是按4台的方式一台台讲,实际安装时全部安装到同一台机器上而已。


(二)一号机安装nginx

一号机Web服务器,需要安装 nginx。它是负责接收所有用户请求的第一关。在Ubuntu下,安装nginx就这一行终端命令:


sudo apt install nginx


对于我来说,这其中的难点主要在于输入以上指令后,要如何拍下回车键才能让自己的动作在边上的同事眼里显得高端大气还有技术范。而实际教学过程中,则是有 10%的粗心学员,输错了nginx;还有15%的学员开机5分钟后,就忘了自己Ubnutu的sudo密码。


说话间(约3~4秒),nginx在我们的1号机上安装完毕,并且自动运行起来了。可以用以下命令看看它的状态:


service nginx status

回车后,根据你的机器的CPU核数,可以看到对应个 nginx的工作进程(worker process)在运行中。另外还可以看到俄罗斯人当仁不让的自我吹嘘的字眼“A high performance web server”,以及nginx著名的反向代理功能 “and a  reverse porxy server ...”


按键Ctr-C,退出nginx自吹的舞台。


(三)2号机编译、安装CPPCMS

首先到 cppcms.com 找到“Download”链接,下载得到 cppcms-1.0.5.tar.bz2文件,在Ubuntu中解压。打开终端进入解压后的文件夹,比如“/下载/cppcms-1.0.5/”。CPPCMS采用CMake作为“制作”工具,所以:

cmake .


注意cmake及空格后面有一个小数点。这回可以出门抽颗烟。然后:

make


估计又是3秒,编译完成,可以安装了,需要管理员权限 :

sudo make install


说起来我们要用CPPCMS库(也可以认为是一个框架)写的代码,基本和WEB没有关系了。实际项目中,前端的微信商店(HTML5)是属于WEB应用,但同时也实现了Androd和iOS(苹果)下的移动APP,三者后台都是我们刚安装完成的nginx + CPPCMS。



(四)编译器


在终端里输入:

gcc  -v

看看有没有输出GCC的版本信息?如果没有,那肯定是你在安装Ubunut的过程中,没有选中开发工具(那是给非程序员的选择)。补充安装也很简单:


sudo apt install build-essential


要不要IDE呢? 我写《白话 C++》时采用的Windows + Code::Blocks + mingw gcc。 不过Code::Blocks的新版本在 Ubuntu下界面会偶发地卡住啊,完全没办法用了。不过Linux下的C++ IDE那就多去了,我们一不做二休,下一节课不使用任何IDE。最简化地完成一个C++后台的WEB应用。


(微信 搜索 公众号  程知网 ,关注可更及时看到更新)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南郁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值