前后端分离之服务器结构部署

背景:

我们所在的前端组是公司IT部门的一个公共技术组,承接公司各条业务线的WEB前端需求。这样就要求我们要有自己的前端服务器,这些服务器还要能够根据不同业务线需求与后端对接。这些服务器的结构如何,服务器与服务器之间有没有关联、服务器与业务线的关系如何、服务器与后端的配置如何才能通用,以上这些即是本文需要回答的问题。
首先搞清楚需要怎样的服务器:

Web前端必定是要走前后端分离模式的,nginx既可以代理转发又可以配置负载,而且所有项都是可以自定义配置的,而且目前很多中大型公司已经有很多项目在使用nginx作为基础服务,服务稳定且技术文档详尽,当然它支持各平台,所以nginx是代理及负载的首选。公司目前无论是SIT环境或是online的服务器操作系统均为linux,因此我们在测试环境及生产环境各搭建了前端的linux服务器。那服务器之间的结构是怎样的呢,且听分析…

你该拥有多少台部署了nginx的linux呢:

答案是不能少于两台,一台为公共服务、一台为业务服务。那就有疑问了为什么不将公共和业务放在一起呢,假如将公共与业务放在一起,后面要为公共的资源配置特有的访问方式,例如加入CDN池。这样的话你耦合的服务器就很不好配置了。而且为业务服务的服务器还要根据项目访问量的大小来拆分配置,也就是说面向业务的服务器会根据项目的不同会有N多台。而且每一台服务器至少有一主一备两个访问节点,必须要有备用选项,尤其线上服务器端。

服务器结构、关联、与业务线关系是如何:

以我们目前所自有nginx服务器(10台)为例来阐述下。

公共服务类机器有两台,一台自有机房的,一台外部机房的剩余8台均为业务服务器。业务服务器中有三台为PC端、另外5台均为独立业务服务器。为何会形成这样的结构,原因如下:

1.服务器搭建部署必须考虑资源公用与业务量大小与场景,PC端的两个项目访问量不是很大但它是对外的业务,如果出现初问题会造成比较大的影响,所以这两个项目部署了一台。另外一个项目业务访问量很大,考虑到后续增量的问题,就单独部署一台。剩余三个项目的对外影响及访问量均较小,所以合并在一起再单独部署一台。这样就形成在PC端会有三台服务器的结构。

2.前端资源部署要考虑资源公用及灾备。以我们公共H5服务为例,为什么会存在两台公共前端服务器。公共服务器主要用来存放可公共访问的资源及公共项目,因此这两台服务器均存放了公共的前端访问资源,所不同的是一台服务器是我们自有机房的,另外一台是第三方的机房,并且我们将第三方机房的服务器嫁接了CDN服务,这样用户访问的资源会通过CDN服务商再到第三方的机房服务器,这样资源不管如何访问,走没走CDN网络,均不会占用我们的自有带宽。那假如第三方的服务器机房出现故障怎么办呢?表当心,我们同时也配置了灾备的设置。当第三方的服务器出现故障,我们自有机房的另外一台公共H5服务器这时就会生效,访问的资源会直达我们的机房,这时会耗用我们自有机房的带宽,保证用户端的访问不会出现任何问题,不过这种情况会较少出现。这就是为什么会有两台公共H5服务器并存的原因。我们的一些公共的项目同时也存放在了我们自有机房的服务器上,这样既可以达到公用,又达到了资源的最大化利用。

3.独立业务线单独配置。针对以些访问量很大或不定或需要特殊配置的项目,最好单独配置服务器。这样可达到最大程度的个性化配置与解耦。

以上便是形成我们目前服务器结构的总体阐述,接下来就需要阐明具体如何配置,即服务器与后端的配置如何才能通用。

服务器与后端的配置如何才能通用呢:

首先来看下我们nginx服务器配置文件的结构,结构如下图:

以下为nginx.conf配置

以下为servers中的一个项目配置,(其他项目只是IP及hostname与文件夹不同而已)

按照如上的进行配置即可达到通用。

以上所述即是我们目前前端的整体服务器结构与配置,如果有更好的意见或建议,欢迎各位看管批评指正,thanks!!!

原文地址:https://www.cnblogs.com/huoyonghong/p/8513682.html

时间: 2024-11-03 20:47:29

前后端分离之服务器结构部署的相关文章

SpringBoot电商项目实战 — 前后端分离后的优雅部署及Nginx部署实现

在如今的SpringBoot微服务项目中,前后端分离已成为业界标准使用方式,通过使用nginx等代理方式有效的进行解耦,并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务架构.多端化服务(多个客户展现端,例如:web端,安卓app,IOSapp,微信小程序等)打下坚实的基础.这个步骤是系统架构从猿进化成人的必经之路. image 上图是简单的分布式微服务开发及前后端分离的示意图.展现层也就是所谓的前端(客户可直观看到的),比如电商项目前端包含:app(安卓和IOS).微信小程序.PC商

前后端分离跨服务器文件上传-Java SpringMVC版

近来工作上不上特别忙,加上对后台java了解一点,所以就抽时间,写了一个java版本的前后端分离的跨服务器文件上传功能,包括前后端代码. 一.Tomcat服务器部分 1.Tomcat服务器 单独复制一份Tomcat,用来作为文件服务器 1.1 xml文件: 需要在该Tomcat的conf目录下的web.xml文件的大概100行添加如下部分: 1.2 server.xml文件: 需要在该Tomcat的conf目录下的server.xml文件做一些端口的修改 1.3 Tomcat下建立文件夹 在该T

前后端分离开发部署模式

前后端分离开发部署模式 Other 2015-06-13 在开始讨论这个话题之前我们先来认识一下传统的开发模式. 一.传统开发模式 相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比如: PHP 开发有 Smarty模板引擎 Java web工程有jsp页面 Python 各个Web框架都有各自的模板引擎 NodeJS 的express你懂得 都有一个共同的特点,服务器端后台语言生成解析后的HTML/XML格式返回给客户端,例如浏览器端

前后端分离实践一

在开始讨论这个话题之前我们先来认识一下传统的开发模式. 一.传统开发模式 相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比如: PHP 开发有 Smarty模板引擎 Java web工程有jsp页面 Python 各个Web框架都有各自的模板引擎 NodeJS 的express你懂得 都有一个共同的特点,服务器端后台语言生成解析后的HTML/XML格式返回给客户端,例如浏览器端访问直接返回解析好的HTML,浏览器直接就解释执行. 二.

docker-compose 部署 Vue+SpringBoot 前后端分离项目

一.前言 本文将通过docker-compose来部署前端Vue项目到Nginx中,和运行后端SpringBoot项目 服务器基本环境: CentOS7.3 Dokcer MySQL 二.docker-compose 部署Vue+SpringBoot 前后端分离项目 整体项目配置结构,这里在不影响原来项目的结构,因此将所有配置文件都提出来存放到docker文件夹内了,但注意docker-compose文件须放到项目总的根目录下哦! 1.新增后端所需配置文件api-Dockerfile # 指定基

通过nginx部署前端代码实现前后端分离

实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不用在需要往JSP页面注入数据. 通过nginx来部署前端代码,可以帮助前端实现以下基本需求: 1.请求转发,解决请求跨域的问题 server { listen       7777; location /{ root   /Users/xiaoyun/git/someproject/dist; }

Ueditor 前后端分离实现文件上传到独立服务器

关于Ueditor 前后端分离实现文件上传到独立服务器,在网上搜索确实遇到大坑,不过还好遇到了 虚若影 最终实现了,在此感谢!虚若影的原文博客网址:http://www.cnblogs.com/hpnet/p/6290452.html 具体项目:如下截图 1.在本地IIS 中添加网站 ueditorweb.com .ueditortest.com . testweb (注意应用程序池要选择.net的版本) 2.hosts文件中添加 127.0.0.1  ueditorweb.com  uedit

Docker环境下的前后端分离项目部署与运维(一)项目简介及环境要求

项目简介 本教程将从零开始部署一个前后端分离的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能.高负载.高可用的部署方案.包括了MySQL集群.Redis集群.负载均衡.双机热备等等. 部署图 所用到的主流技术 Docker容器.前后端集群.MySQL集群.Redis集群.Haproxy负载均衡.Nginx负载均衡.Keepalived实现双机热备 前后端分离项目部署图 前后端分离项目开源框架介绍 本次教程所采用的前后端分离的项目开源框架是人人网的renren

Docker环境下的前后端分离项目部署与运维

const 课程地址 = " http://icourse8.com/Dockerbushu.html "; 详细信息第1章 课程介绍 第2章 人人开源前后端分离项目下载与配置 第3章 Linux基础知识强化 第4章 搭建MySQL集群 第5章 搭建Redis集群 第6章 部署前后端分离项目 第7章 课后作业 第8章 云平台部署前后端分离 第9章 课程总结 var countAndSay = function(n) { return createStr(1, '1', n) funct