`

nginx负载均衡设置

 
阅读更多
nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认) 
      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
2)、weight 
      指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
2)、ip_hash 
      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  
3)、fair(第三方) 
      按后端服务器的响应时间来分配请求,响应时间短的优先分配。  
4)、url_hash(第三方)


配置:
在http节点里添加:

#定义负载均衡设备的 Ip及设备状态 

upstream myServer {   

    server 127.0.0.1:9090 down; 
    server 127.0.0.1:8080 weight=2; 
    server 127.0.0.1:6060 weight=1 max_fails=2 fail_timeout=30s; 
    server 127.0.0.1:7070 backup; 
}

在需要使用负载的Server节点下添加

proxy_pass http://myServer;

upstream 每个设备的状态:

down 表示单前的server暂时不参与负载 
weight  默认为1.weight越大,负载的权重就越大。 
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 
fail_timeout:max_fails 次失败后,暂停的时间。 
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。



       location /myhttp {
            index  index.jsp;
            proxy_pass      http://myServer/myhttp/;
            proxy_redirect          off;
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size    10m;
            client_body_buffer_size 128k;
            proxy_connect_timeout   90;
            proxy_send_timeout      90;
            proxy_read_timeout      90;
            proxy_buffer_size       4k;
            proxy_buffers           4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;

         }


处理session的情况
1)使用memcached或其它方式保存
2)ip_hash
upstream backend {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
ip_hash;
}
注意:
(1)nginx不是最前端的服务器。ip_hash要求nginx一定是最前端的服务器,否则nginx得不到正确ip,就不能根据ip作hash。譬如使用 的是squid为最前端,那么nginx取ip时只能得到squid的服务器ip地址,用这个地址来作分流是肯定错乱的。

(2)nginx的后端还有其它方式的负载均衡。假如nginx后端又有其它负载均衡,将请求又通过另外的方式分流了,那么某个客户端的请求肯定不能定位到同一 台session应用服务器上。这么算起来,nginx后端只能直接指向应用服务器,或者再搭一个squid,然后指向应用服务器。最好的办法是用 location作一次分流,将需要session的部分请求通过ip_hash分流,剩下的走其它后端去。
3) upstream_hash
解决ip_hash的问题,使用,nginx_upstream_jvm_route
    
    --add-module=/path/to/this/directoryEXAMPLE¶1.For resin 
upstream backend {     
server 192.168.0.100 srun_id=a;     
server 192.168.0.101 srun_id=b;    
server 192.168.0.102 srun_id=c;    
server 192.168.0.103 srun_id=d;      
jvm_route $cookie_JSESSIONID; //resion
#jvm_route $cookie_JSESSIONID reverse;//tomcat
}


For all resin servers 
    <server id="a" address="192.168.0.100" port="8080">    
    <http id="" port="80"/>     </server>    
    <server id="b" address="192.168.0.101" port="8080">     
    <http id="" port="80"/>     
    </server>
    
And start each resin instances like this: 
server a 
shell $> /usr/local/resin/bin/httpd.sh -server a start
server b 
shell $> /usr/local/resin/bin/httpd.sh -server b start


    <server id="a" address="192.168.0.100" port="8080">    
    <http id="" port="80"/>     </server>   
    <server id="b" address="192.168.0.101" port="8080">   
    <http id="" port="80"/>     
    </server>
    And start each resin instances like this: 
server a 
shell $> /usr/local/resin/bin/httpd.sh -server a start
server b 
shell $> /usr/local/resin/bin/httpd.sh -server b start

具体参考:
http://code.google.com/p/nginx-upstream-jvm-route/

http://apps.hi.baidu.com/share/detail/43299477
如何优化
http://www.yanghengfei.com/archives/326/

分享到:
评论

相关推荐

    三步安装完成nginx负载均衡设置.docx

    【Nginx 负载均衡设置详解】 Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛用于实现负载均衡。本教程将详细介绍如何通过三步安装和配置 Nginx 以实现负载均衡功能。 **第一步:环境准备** 在进行 Nginx 负载...

    超细腻的nginx负载均衡设置全程奉献.doc

    【超细腻的Nginx负载均衡设置全程奉献】 在现代Web服务架构中,负载均衡扮演着至关重要的角色,它能够确保高可用性、性能优化以及系统扩展性。本教程将详细讲解如何通过Nginx实现负载均衡,同时利用Tomcat作为后端...

    Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明

    Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明 为了多台后台的web、webservice服务能均衡负载,可以使用nginx进行处理 1)配置文件全配制ok 2)有两个完整的web服务做例子,可以...

    动态管理nginx负载均衡.zip

    动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip动态管理nginx负载均衡.zip...

    nginx负载均衡配置,宕机自动切换方式

    在传统的nginx负载均衡配置中,并未直接提供后端服务器健康检查的功能,但nginx提供了几个重要的指令来帮助我们设置超时和重试机制,来间接保障服务的可用性。例如,proxy_connect_timeout指令用于设置nginx尝试连接...

    nginx负载均衡实现

    ### Nginx负载均衡实现 #### 一、负载均衡概念及必要性 负载均衡是一种用于在网络环境中分散工作负载的技术,通常用于改善网络性能、提高可用性和最大化资源利用。当单台服务器难以应对高流量和并发请求时,负载...

    基于lua的nginx自定义负载均衡

    基于lua的nginx自定义负载均衡基于lua的nginx自定义负载均衡

    nginx负载均衡配置文件实例

    **Nginx负载均衡配置详解** Nginx是一款高性能的HTTP和反向代理服务器,它以其轻量级、高并发的特性在Web服务领域广泛应用。其中,Nginx的负载均衡功能是其重要特性之一,它能有效地分散网络流量,提高系统可用性和...

    Linux下nginx负载均衡

    本文将详细解析"Linux下Nginx负载均衡"这一主题,包括Nginx的基本概念、配置原理以及如何在Linux系统中设置负载均衡。 Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款邮件协议代理服务器。它的主要特点是...

    nginx负载均衡部署

    【标题】:“Nginx负载均衡部署” 在现代Web服务架构中,负载均衡扮演着至关重要的角色,它能够有效地分发网络流量,提高系统可用性和响应速度,防止单点故障。Nginx作为一款高性能的HTTP和反向代理服务器,常常被...

    Nginx负载均衡配置

    下面详细解释Nginx负载均衡的配置方法以及负载均衡策略。 首先,要配置Nginx与Tomcat实现负载均衡,需要准备两个Tomcat实例,每个实例可以部署一个简单的Web项目,例如通过在页面上标注不同的端口号,以便区分它们...

    基于nginx负载均衡的集群聊天系统.zip

    基于nginx负载均衡的集群聊天系统,其中技术点有网络方面、数据库方面、线程安全方面;功能点有添加好友、单人聊天、群组聊天等 基于nginx负载均衡的集群聊天系统,其中技术点有网络方面、数据库方面、线程安全方面...

    Nginx的负载均衡入门

    Nginx 负载均衡入门 Nginx 是一款高性能的 HTTP 和反向代理服务器,由俄罗斯人 Igor Sysoev 编写。Nginx 已经在俄罗斯最大的门户网站 Rambler Media 上运行了 3 年时间,同时俄罗斯超过 20% 的虚拟主机平台采用 ...

    nginx负载均衡配置文件demo

    **Nginx负载均衡配置详解** 在高并发的互联网应用环境中,服务器的性能优化和负载分发至关重要。这里我们探讨的是如何使用Nginx作为反向代理和负载均衡器,来提升系统的整体处理能力,特别是在处理静态内容和优化...

    nginx负载均衡配置-windows.docx

    nginx 负载均衡配置-windows.docx 本文档主要介绍了在 Windows 平台上使用 Nginx 实现负载均衡的配置方法。虽然 Nginx 官方文档中提到 Windows 平台仅供测试之用,但是在小规模并发场景中,Nginx 仍然具有不小的...

    nginx负载均衡.docx

    在进行负载均衡设置之前,确保防火墙(firewalld)已经关闭,并且不会在系统启动时自动开启。可以通过以下命令来操作: ```bash systemctl stop firewalld systemctl disable firewalld ``` 接下来,创建必要的...

    nginx 负载均衡与缓存服务器标准配置文件

    nginx 负载均衡与缓存服务器标准配置文件

    nginx负载均衡 反向代理

    nginx 负载均衡 反向代理 nginx 负载均衡 反向代理 nginx 负载均衡 反向代理

    nginx负载均衡文档

    linux下安装Nginx并做到负载均衡,配置详细在文档有介绍!

Global site tag (gtag.js) - Google Analytics