什么是DNS解析域名
DNS域名解析就是将域名转化为不需要显示IP、端口(二级域名的端口一般为80)的IP地址,域名解析的一般先去本地环境的host文件读取配置,解析成对应的IP地址,根据IP地址访问对应的服务器。若host文件未配置,则会去网络运营商获取对应的IP地址和域名。
Nginx
Nginx的作用
反向代理、负载均衡、配置主备tomcat、动静分离
应用场景
做Http服务器、反向代理服务器、静态资源服务器
什么是反向代理
代替真实的服务器去接收网络请求,然后将请求转发到不同的真实服务器。
如何配置反向代理
首先到DNS服务器做域名解析,如果是局域网在Hosts文件中配置IP和域名对应关系。
编辑nginx的nginx.conf文件,配置server_name为指向nginx服务器的域名,location拦截请求,如果是访问本地资源则配置root,如果是反向代理到真实服务器则配置proxy_pass为真实服务器地址。
常用Nginx的相关配置
upstream负载均衡配置。
server [IP] [weight] [backup] 配置tomcat集群。
proxy_connect_timeout、proxy_read_timeout、proxy_send_timeout连接时间、真实服务器响应时间、返回结果时间。
location 匹配用户请求的url,根据不同请求转发到不同的服务器。
root配置本地资源路径。
proxy_pass 配置真实服务器地址。
如何配置负载均衡
在upstream中配置多个server,在location的proxy_pass配置为http://+upstream名称。
Nginx如何实现动态负载均衡
四层代理、七层代理
LVS与Nginx区别
LVS是四层反向代理,基于TCP和UDP协议,可以用于管理Nginx集群,抗负载能力强。
Nginx是七层反向代理,基于Http协议,用于管理真实服务器集群。
四层负载均衡和七层负载均衡区别
四层负载均衡基于TCP和UDP协议,通过IP+端口号接受请求并转发到服务器。
七层负载均衡基于Http协议,通过url或主机名接收请求并转发到服务器。
四层负载均衡有哪些实现方案
LVS、F5
负载均衡有哪些算法
轮询算法
按照实际顺序分配到不同的服务器,当其中一台服务器宕机则被自动剔除,切换到正常的服务器。
权重算法
按照分配给服务器的权重比例来分发到不同服务器,权重比例越高,则访问的几率越大。
IP绑定(ip_hash):根据访问的IP的hash结果来判定,使同一个IP访问一台固定的后端服务器,同时解决了动态页面的session问题。
服务器分布式后,产生的问题
分布式锁
可以使用redis setnx分布式锁,解决多个服务器并发访问同一个创建、修改操作(该操作必须串行操作)。
分布式全局ID
分布式Session一致性问题
分布式事务
分布式任务掉
可以通过在数据库中设置定时任务名称即执行状态,如果有机器执行了定时任务,修改数据库中状态,后来的服务器先查询任务状态,如果已经在执行或者执行完成就不会再去执行任务。
分布式日志收集
分布式配置中心
Keepalived
LVS与Keepalived区别
Lvs可以实现负载均衡,但是无法实现健康检查。Keepalived可以进行健康检查实现高可用。
作用
keepalived软件可以进行健康检查,而且能同时实现LVS的高可用性,解决LVS的单点故障的问题。
如何实现双机主从热备
Nginx+Tomcat:在upsteam中配置多台服务器,从服务器后加backup。
Keepalived+Nginx:在多台nginx服务器上安装keepalived,将主服务器的state设置为MASTER,从服务器state设置为BACKUP,主服务器的优先级高于从服务器。
LVS+Keepalived+Nginx架构流程图
项目的高可用
项目发布如何不影响正常用户访问
可用两台服务器互为热备,平时各自负责各自的服务。在做线上更新的时候,关闭一台服务器的tomcat后,Nginx自动把流量切换到另外一台热备服务器上,从而实现无痛更新,保持了服务的高可用性。
项目发生宕机了,如何处理
使用LVS+Keepalived+Nginx做主从热备,LVS管理Nginx集群,Nginx管理tomcat服务集群,在服务器宕机的情况下,keepalived健康检测到后,多次重启无果可以短信通知运维人员及时维护。
如何控制浏览器静态资源缓存问题
一般的服务器是强制F5进行刷新或者是清除缓存,最有效的方法是在请求资源后面加上时间戳或者随机数。
参考
https://blog.csdn.net/q15102780705/article/details/100586366