nginx负载均衡

nginx负载均衡 tomcat集群 memcache共享session

依然范特西╮ 提交于 2019-12-02 17:17:44
http://9iu.org/2011/11/25/tomcat-memcached-session-sso.html 把 tomcat 的 session 存放在 memcached 的集中式缓存中 , 能够很好解决 tomcat 的集群负载 , 不用使用笨重的 session 复制 , 也能轻松解决 session 数据的同步 把所有的 jar 文件复制到 tomcat/lib 下 把 context.xml 复制到 tomcat/conf 下 , 注意修改 memcached 的连接 后台的 session 是共享的 , 如果前台的 JSESSIONID 也是共享的 , 不就可以实现统一登录了吗 ? 在同一域名下 例如 test1.abc.com 和 test2.abc.com 浏览器是允许共享 cookie 的 , 只需要把 JSESSIONID 的作用域设定为 abc.com 就可以了 修改 tomcat org.apache.catalina.connector.Request.java protected void configureSessionCookie(Cookie cookie) 这个方法 设置 cookie 作用域为主域名 , 例如 abc.com tomcat 6.0.32 和 tomcat6.0.33 的 Request 是不同的

nginx负载均衡

拥有回忆 提交于 2019-12-02 16:18:29
一:为什么要实现负载均衡 当一台服务器的单位时间内访问量越大的时候,服务器压力会越大,当一台服务器压力大得超过自身的承受压力的时候,服务器会崩溃。为了避免服务器崩溃,让用户更好的体验,我们通常通过负载均衡的方式来分担服务器的压力。那么什么是负载均衡呢?我们可以建立很多个服务器,这些服务器组成一个服务器集群,然后当用户访问我们的网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器。这样,用户每次的访问,都会保证服务器集群中的每个服务器的压力区域平衡,分担了服务器的压力,避免了服务器崩溃的情况。 二:Nginx的优势 nginx是一款可以通过反向代理实现负载均衡的服务器,使用nginx服务器实现负载均衡的时候,用户首先会访问到nginx服务器,然后nginx服务器再从服务器群中选择压力较小的服务器,把该访问请求引入到该服务器。若服务器群中的某个服务器崩溃,那么从待选的服务器列表中删除,也就是说如果一个服务器崩溃了,那么nginx肯定不会把访问引入该服务器了。 三: 负载均衡 当使用了代理服务器时,一般代理服务器后面不仅仅只有一台原始服务器,而是有很多台服务器一起在处理用户发过来的请求,这时就要协调好多台服务器怎样合作共同处理用户的请求 若所有的原始服务器配置相差不大的情况下,负载均衡的手段一般为轮询

nginx负载均衡

三世轮回 提交于 2019-12-02 14:52:47
负载均衡 负载均衡(反向代理)概念 什么是集群? 完成相同任务或者工作的一组服务器(web01 web02 web03 --- web集群) Nginx代理服务基本概述 1.代理一词往往并不陌生, 该服务我们常常用到如(代理理财、代理租房、代理收货等等),如下图所示 2.在没有代理模式的情况下,客户端和 Nginx 服务端,都是客户端直接请求服务端,服务端直接响应客户端。 3.那么在互联网请求里面, 客户端往往无法直接向服务端发起请求, 那么就需要用到代理服务, 来实现客户端和服务通信,如下图所示 什么是代理? 反向代理:外网 → (外网网卡)代理服务器(内网网卡) → 公司网站服务器web(内网) 正向代理:内网(局域网主机) → (内网网卡)代理服务器(外网网卡) → 互联网 → web服务器(国外) Nginx代理服务支持的协议 1.Nginx 作为代理服务,可支持的代理协议非常的多,具体如下图 2.如果将 Nginx 作为反向代理服务,常常会用到如下几种代理协议,如下图所示 3.反向代理模式与 Nginx 代理模块总结如表格 反向代里模式 Nginx配置模块 http、websocket、https ngx_http_proxy_module fastcgi ngx_http_fastcgi_module uwsgi ngx_http_uwsgi_module grpc

Nginx负载均衡会话共享

我只是一个虾纸丫 提交于 2019-12-02 12:28:04
/*--> */ /*--> */ /*--> */ /*--> */ 在使用负载均衡的时候会遇到会话保持的问题,可通过如下方式进行解决 1.使用nginx的ip_hash,根据客户端的来源IP,将请求分配到相同服务器上 2.基于服务端的Session会话共享(mysql/memcache/redis/file) 在解决负载均衡会话问题我们需要了解session和cookie。 1.用户第一次请求服务端网站时,服务端会生成对应的session_id,然后存储至客户端浏览器的cookie中。 2.客户端尝试登陆服务端网站时,浏览器的请求头自动携带cookie信息,在cookie信息中保存的则是session_id。 3.客户端登陆服务端网站后,服务端会将session_id存储在本地文件中, 当用户下次请求网站时会去查询用户提交的cookie作为key去存 储里找对应的value(session) 注意: 同一域名下的网站登陆后cookie都是一样的。所以无论负载后端有几台服务器,无论请求分配到哪一台服务器上同一用户的cookie是不会发生变化的。也就是说cookie对应的session也是唯一的。所以,这里只要保证多台业务服务器访问同一个共享服务器(memcache/redis/mysql/file)就行了。 ~ 后端web01web02安装PHPadmin /*--> */ /*

FastDFS集群+Nginx负载均衡

谁说我不能喝 提交于 2019-12-02 12:08:48
1. 架构设计 1.1 架构图 FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 1.2 服务器配置 192.168.22.173 tracker-group1 192.168.22.174 tracker-group2 192.168.22.175 storage-group1-1 192.168.22.176 storage-group1-2 192.168.22.177 storage-group2-1 192.168.22.178 storage-group2-2 2. FastDFS 安装和配置 2.1. 安装 libfastcommon 上述所有服务器均进行安装。 参照《 fastDFS 分布式文件系统安装教程》 2.2. 安装 FastDFS 上述所有服务器均进行安装。 参照《 fastDFS 分布式文件系统安装教程》 2.3. 配置跟踪器 2.3.1. 配置(192.168.22.173 tracker-group1 ) tracker.conf disabled=false #启用配置文件 base_path=/home/fastdfs/tracker

nginx负载均衡+keepalived高可用

感情迁移 提交于 2019-12-02 03:23:16
看了Linux就该这么学的前部分书,觉得写的还可以,就在网上找了下面这个同学写的笔记,觉得很详细,所以保存地址,供以后查阅参看。 这里对作者表示感谢!!! 博客地址: https://www.cnblogs.com/kaminwu/tag/Linux/ 详细章节: 《Linux就该这么学》培训笔记_ch00_认识Linux系统和红帽认证 《Linux就该这么学》培训笔记_ch01_部署虚拟环境安装Linux系统 《Linux就该这么学》培训笔记_ch02_一些必须掌握的Linux命令 《Linux就该这么学》培训笔记_ch03_管道符、重定向与环境变量 《Linux就该这么学》培训笔记_ch04_Vim编辑器与Shell命令脚本 《Linux就该这么学》培训笔记_ch05_用户身份与文件权限 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分 《Linux就该这么学》培训笔记_ch07_RAID和LVM 《Linux就该这么学》培训笔记_ch08_iptables与firewall防火墙 《Linux就该这么学》培训笔记_ch09_使用ssh服务管理远程主机 《Linux就该这么学》培训笔记_ch10_使用Apache服务部署静态网站 《Linux就该这么学》培训笔记_ch11_使用Vsftpd服务传输文件 《Linux就该这么学》培训笔记_ch12

Nginx负载均衡的max_fails和fail_timeout的默认配置问题

纵饮孤独 提交于 2019-12-01 18:33:49
今天发现一个奇怪的现象,前端请求后端服务多次后会超时一次,经过多次验证确定是大概10s左右就会超时一次,检查后端服务,发现其中一个节点已经夯死。 但是我们的nginx负载均衡策略是轮询机制,按照配置来看应该是每隔一次请求轮询到失败的节点时超时一次才对。为什么是每隔10s超时一次呢? upstream app_server { server 192.168.15.98:9080; server 192.168.15.99:9080; } 原来,Nginx负载均衡的检查模块中,有两个参数:max_fails和fail_timeout。 默认:fail_timeout为10s,max_fails为1次。 原理:Nginx是基于连接探测,如果发现后端异常,在单位周期为fail_timeout设置的时间中失败次数达到max_fails次,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时长为fail_timeout)再一次去请求,判断是否连接是否成功 这样就能说明我们发现的现象了。即在10s以内后端失败了1次【即一次请求超时】,那么这个后端就被标识为不可用了,所以在接下来的10s期间,nginx都会把请求分配给正常的后端【即多次的请求正常】。 来源: https://www.cnblogs.com/andrew-303/p/11712306

基于MSM实现nginx负载均衡+tomcat集群+memcached(session共享)

↘锁芯ラ 提交于 2019-12-01 16:31:24
Session共享的方案介绍 Session 共享有多种解决方法,常用的有四种:客户端 Cookie 保存、服务器间 Session 同步、使用集群管理 Session(如本文要介绍的Memcached Session Manager) 、把 Session 持久化到数据库: 客户端 Cookie 保存 以cookie加密的方式保存在客户端.优点是减轻服务器端的压力,每次session信息被写在客服端,然后经浏览器再次提交到服务器。即使两次请求在集群中的两台服务器上完成,也可以到达session共享。 将 session 持久化到数据中 这种共享session的方式即将session信息存入数据库中,其它应用可以从数据库中查出 session 信息。目前采用这种方案时所使用的数据库一般为mysql。 利用数据库共享 session 的方案有一定的实用性,但也有如下缺点:首先 session 的并发读写在数据库中完成,对 mysql 的性能要求比较高;其次,我们需要额外地实现 session 淘汰(超时)逻辑代码,即定时从数据库表中更新和删除 session 信息,增加了工作量。 使用服务器间 session 同步 使用主-从服务器的架构,当用户在主服务器上登录后,通过脚本或者守护进程的方式,将 session 信息传递到各个从服务器中,这样用户访问其它的从服务器时

【转发】nginx负载均衡6种策略

倾然丶 夕夏残阳落幕 提交于 2019-12-01 16:14:08
转发自 https://www.cnblogs.com/1214804270hacker/p/9325150.html 一、关于Nginx的负载均衡   在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。详情请查看我的 另一篇博客 。 二、Nginx负载均衡策略   负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求。一个最基本的upstream模块是这样的,模块内的server是服务器列表: #动态服务器组 upstream dynamic_zuoyu { server localhost:8080; #tomcat 7.0 server localhost:8081; #tomcat 8.0 server localhost:8082; #tomcat 8.5 server localhost:8083; #tomcat 9.0 }   在upstream模块配置完成后,要让指定的访问反向代理到服务器列表: #其他页面反向代理到tomcat容器 location ~ .*$ { index index.jsp index.html; proxy_pass http://dynamic_zuoyu; }   这就是最基本的负载均衡实例,但这不足以满足实际需求

客户端负载均衡与服务器端负载均衡区别?

本秂侑毒 提交于 2019-12-01 13:34:54
服务器端负载均衡:       例如:Nginx,通过Nginx进行负载均衡,先发送请求,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;即在服务器端再进行负载均衡算法分配。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 客户端负载均衡:       例如:spring cloud中的ribbon,客户端会有一个服务器地址列表,在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,这是客户端负载均衡;即在客户端就进行负载均衡算法分配。 来源: https://www.cnblogs.com/Z-wen/p/11688657.html