环境限制,win10下测试下Nginx的负载均衡,配置比较简单,最简配置如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream cluster_test{
server 127.0.0.1:6080;
server 127.0.0.1:7080;
#ip_hash;
#upstream_hash;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm index.jsp;
proxy_pass http://cluster_test;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
ip_hash:实现Session Sticky ,针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个
upstream_hash:为了解决ip_hash的一些问题,可以使用upstream_hash这个第三方模块,这个模块多数情况下是用作url_hash
nginx_upstream_jvm_route:Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 功能
Nginx中ip_hash、upstream_hash、nginx_upstream_jvm_route可以达到session共享的目的,ip_hash已验证,有兴趣的可以试一下。本文使用外接缓存达到session共享的目的,jeesite默认提供了Ehcache、redis的解决方案,选用Ehcache的RMI进行cache同步实现session共享。选择该方案,只是为了图省事,建议采用redis。
在实际测试时,每次切换节点shiro自定义的sessionid都会变好,花费了我很多时间,快奔溃了,各种查资料、看shiro源码。也猜测过可能是cache同步的问题,简单做了下测试,发现有进行同步。又去查其它的问题,走了很多弯路,最后发现还是cache的问题。jeesite下默认的ehcache-rmi.xml配置是需要进行调整的,activeSessionCache监听工厂的参数replicateAsynchronously=true、replicateUpdatesViaCopy=false需要调整,调整replicateAsynchronously=false、replicateUpdatesViaCopy=true,或者replicateUpdatesViaCopy=true、asynchronousReplicationIntervalMillis=200。原因在于cache节点间异步复制有时间间隔,切换节点时可能复制未完成。因此,应根据cache实际应用场景采用同步复制或者异步复制,异步复制时应注意间隔时间。
tomcat-redis-session-manager、memcached-session-manager也可达到session共享的目的
使用负载均衡之后的Session处理思路
引用
Apache 与 Nginx 比较
引用
web服务器nginx和apache的对比分析
引用
为什么Nginx的性能要比Apache高很多?
引用
分享到:
相关推荐
Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明 为了多台后台的web、webservice服务能均衡负载,可以使用nginx进行处理 1)配置文件全配制ok 2)有两个完整的web服务做例子,可以...
我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里简单介绍下这两种技术: a、软件负载均衡解决方案 在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们...
负载均衡是Nginx的核心功能之一,它可以通过轮询、最少连接数、IP哈希等多种策略分配请求。例如,轮询策略会均匀地将请求分配给每个服务器,而最少连接数策略则会将新的请求分配给当前处理连接最少的服务器,以优化...
基于lua的nginx自定义负载均衡基于lua的nginx自定义负载均衡
DNS负载均衡是最常见的负载均衡技术之一,它通过DNS服务器将客户端的请求随机地分发到不同的服务器上。这种方法实现简单、成本低廉,但是存在一些明显的局限性: - **负载不均**:DNS服务器不会考虑后端服务器的...
- 对于负载均衡,可以通过在Nginx配置文件中定义多个后端服务器,并使用`proxy_pass`指令来实现。 ```nginx upstream backend { server backend1.example.com; server backend2.example.com; } server { ...
nginx经常用到的负载均衡的5种策略,注意细节,部分属性不能一起使用。
### Keepalived+Nginx 实现高可用Web负载均衡 #### 场景需求 在现代互联网应用中,网站和应用程序需要处理大量的用户请求,并确保即使在服务器出现故障的情况下也能持续提供服务。为了满足这一需求,通常采用高可用...
"Nginx+Tomcat 负载均衡 3分钟搞定" 本文将从以下几个方面详细介绍 Nginx+Tomcat 实现负载均衡的知识点: 一、负载均衡的概念和优势 负载均衡(Load Balancing)是指在多台服务器之间分配工作负载,以提高响应...
`nginx` 是一款高性能的反向代理服务器,常用于实现负载均衡,而 `Eureka` 是 Netflix 提供的一个服务注册与发现组件,是微服务架构中的关键组件。本实例将讲解如何结合 `nginx` 和 `Eureka` 实现微服务的负载均衡,...
动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip...
负载均衡 Nginx概述 Nginx安装 Nginx配置 Nginx的负载均衡 Nginx的重定向
Nginx与Tomcat的负载均衡 Nginx与Tomcat的负载均衡是指通过Nginx服务器来实现Tomcat集群的负载均衡,以提高系统的高性能和可扩展性。下面是实现负载均衡的详细步骤和知识点: 一、环境准备 * Nginx 1.8.0 * ...
Nginx的一大亮点在于它的集群和负载均衡能力。当配置为负载均衡器时,Nginx能够智能地分发请求到不同的服务器,确保服务的可用性和效率。例如,如果集群中的一台服务器出现故障或需要重启,Nginx会自动检测并重新...
在 Nginx 1.8 版本中,我们可以利用其强大的负载均衡功能来优化服务架构。 一、Nginx 负载均衡的基本原理 Nginx 作为前端服务器,接收来自客户端的请求,然后根据预设的策略将这些请求分发到后端的一组服务器上。...
这些模块内嵌于nginx之中,提供了核心的代理和负载均衡功能。通过配置文件nginx.conf中的upstream指令块,用户可以定义服务器组和权重,使得nginx根据相应的算法将客户端请求均衡地分配到各个服务器上。 在传统的...
负载均衡是Nginx的一个重要功能,它可以将客户端的请求分发到多个服务器上,从而提高系统的处理能力和扩展性。下面详细解释Nginx负载均衡的配置方法以及负载均衡策略。 首先,要配置Nginx与Tomcat实现负载均衡,...
### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...
在IT行业中,Linux环境下的Nginx服务器因其高效、稳定和强大的反向代理及负载均衡功能而被广泛应用。本文将详细解析"Linux下Nginx负载均衡"这一主题,包括Nginx的基本概念、配置原理以及如何在Linux系统中设置负载...