目前网页大多以静态网页+ajax动态更新方式比较多,这样部署可以很好地前后端分离,让前端人员去处理网页,后端人员更多地去关心api。
部署这种网站一般是,nginx用于静态资源和javascript代码的存储,tomcat(如果后端java)用于动态返回数据。用户访问一个页面,nginx先返回静态资源和js代码,用户的浏览器执行js代码,发现js里面有ajax部分,动态地向api服务器发送 get/post指令去取对应的资源,api服务器得到指令之后交给对应的服务进行处理,如果有多个微型的api服务器,则架构方式为微服务模式,每个服务器的资源应该按照REST标准的资源访问规则来命名。
举个例子,用户访问 商城页面,“商城页面静态资源”返回,js向api服务器发送请求账户余额,得到账户余额填到对应的“商城页面静态资源”页面里替换掉原来的内容,同时js可能还向另一个api服务器发送请求用户头像,用户的屏蔽商品,需要向用户的推荐商品(recommanded system)等等,每个api服务器做自己的事情,一旦推荐商品服务正在升级,不会影响其他的服务,用户可以正常购买商品。
回到正题:
nginx的7层负载平衡可以很优秀处理大流量访问的问题,所以首先选择nginx作为主要的网站服务应用,由于docker可以很方便地架设服务,迁移服务,同时又不会污染环境,我们使用docker来控制不同的服务,let’s start.
1.安装docker && docker-compose
(安装这一类东西我一般用su用户直接安装,免加sudo)
yum install docker