Nginx+Tomcat负载均衡、动静分离

Nginx应用

  • Nginx是一款非常优秀的HTTP服务器软件
    • 支持高达50000个并发连接数的响应
    • 拥有强大的静态资源处理能力
    • 运行稳定
    • 内存、CPU等系统资源消耗非常低
  • 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力

反向代理

  • 反向代理:当我们的网站访问量越来越大,一台tomcat 服务器已经无法满足服务需求,需要加服务器,但是服务器直接无法实现session共享,需要加一层(nginx),来转发控制,反向代理到三台服务器中某台,实现数据共享。

负载均衡

  • 负载均衡:给服务器性能好的访问权重分配大,给服务性能差的分配流量少。

nginx负载均衡的模式(调度算法/策略)

  • rr 轮询 负载均衡模式 (自带的)
      每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效继续探测,一般来说rr可以根据权重来进行均匀分配。

  • least_conn 最少连接(自带的)
      优先将客户端请求调度到当前连接最少的服务器。

  • weight 加权轮询(自带的)
      weight代表权重的意思,用于指定轮询的几率,默认权重都是1,可以手动设置调整,权重越高,被分配的次数越多,weight权重和访问比例是成正比的,用于解决后端服务器性能不均衡时,调整访问比例。

  • ip_hash (自带的)
      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,但是ip_hash会造成负载不均,有的服务请求接受多,有的服务请求接受少,所以不建议采用ip_hash模式,session 共享问题可用后端服务的 session 共享代替 nginx 的 ip_hash(使用后端服务器自身通过相关机制保持session同步)。

  • url_hash(第三方)
      基于用户请求的uri做hash。和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。

  • fair(第三方)
      按后端服务器的响应时间来分配请求,响应时间短的优先分配。

七层反向代理

nginx服务器做七层反向代理:动静分离+负载均衡
vim /usr/local/nginx/conf/nginx.conf
Nginx+Tomcat负载均衡、动静分离_第1张图片

Nginx+Tomcat负载均衡、动静分离_第2张图片

Nginx+Tomcat负载均衡、动静分离_第3张图片

三个Tomcat 后端服务器
Nginx+Tomcat负载均衡、动静分离_第4张图片
weight
Nginx+Tomcat负载均衡、动静分离_第5张图片

四层代理配置

四层代理配置=多个七层反向代理服务器+负载均衡
四层代理需要 在编译安装时添加 --with-stream 启用 stream模块,提供4层调度

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持
--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
--with-stream										#启用 stream模块,提供4层调度

vim /usr/local/nginx/conf/nginx.conf
Nginx+Tomcat负载均衡、动静分离_第6张图片
Nginx+Tomcat负载均衡、动静分离_第7张图片

Nginx+Tomcat负载均衡、动静分离_第8张图片

在这里插入图片描述
这两个ip地址对应的是两个七层反向代理服务器

你可能感兴趣的:(nginx,负载均衡,tomcat)