这是企业一般的网站架构,在这里详细解释下:
User:代表用户发出的请求,可以是在浏览器,web应用,app,微信小程序等发出的请求
DNS:代表DNS域名解析,把域名解析成IP地址
CDN:内容分发网络,也就是本地节点,在DNS解析后会走到CDN的一个中心节点,中心节点会返回一个就近的本地节点,让用户直接访问到本地节点,本地节点存放的是一些静态文件,视频,图片等等
LVS:工作在网络的第四层,由于不需要经过网络层,所以能接收的并发量高,性能好,且不需要运维,结合keepalived,实现一套高可用的负载均衡+反向代理功能
nginx:工作在网络的第七层,七层负载均衡加反向代理,稳定性高,可采用DNS轮询,权重,IP hash,fair算法,分配用户请求给服务器,可以做集群,也可以使用keepalived,实现高可用的效果
Java:运行在服务器的一套应用程序或者网站,可以用docker,k8s,kvm虚拟化技术做微服务
mysql:mysql根据业务情况可以做主从,可以加中间件mycat实现读写分离,如果访问数据压力大的话,可以加消息队列中间件,例如kafka
redis:缓存用户的登录信息以及用户最近访问的内容,和mysql处于并列,主要由应用服务器写的代码决定