`

nginx负载

 
阅读更多

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
    Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性:     在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
    Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

        nginx直接去官网下载就可以,配置文件放在下面的conf目录。

 

1.下面先做最简单的配置,意思是把请求到本机8080端口的所有http请求分别转发到本机18080和28080端口

    #user  nobody;  
    worker_processes  2;  
      
    #error_log  logs/error.log;  
    #error_log  logs/error.log  notice;  
    #error_log  logs/error.log  info;  
      
    #pid        logs/nginx.pid;  
      
      
    events {  
        #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。     
        #use epoll;   
        worker_connections  1024;  
    }  
      
      
    http {  
        include       mime.types;  
        default_type  application/octet-stream;  
      
        sendfile        on;  
      
        keepalive_timeout  65;  
      
        #gzip  on;  
        upstream mysvr {     
          #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。     
          #同一机器在多网情况下,路由切换,ip可能不同     
          #ip_hash;  
          server localhost:18080;     
          server localhost:28080;     
         }     
      
        server {  
            listen       8080;  
            server_name  localhost;  
      
            #charset koi8-r;  
      
            #access_log  logs/host.access.log  main;  
      
            location / {     
                        proxy_connect_timeout   3;     
                        proxy_send_timeout      30;     
                        proxy_read_timeout      30;     
                        proxy_pass http://mysvr;     
                }  
        }  
    }  

 2.Nginx upstream的5种权重分配方式
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream mysvr {
server 192.168.0.14:8080 weight=10;
server 192.168.0.15:8080 weight=10;
}
3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题(在上面提到的,如果一台机器有多个ip,且都能达到我们的服务器,这点就无效了)。
(适用于要求ip地址一致性的场景)
例如:
upstream mysvr {
ip_hash;
server 192.168.0.14:8080;
server 192.168.0.15:8080;
}

4)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
(fair策略是扩展策略,默认不被编译进nginx内核。其原理是根据后端服务器的响应时间判断负载情况,从中选出负载最轻的机器进行分流。这种策略具有很强的自适应性,但是实际的网络环境往往不是那么简单,因此要慎用。)

upstream mysvr {
server 192.168.0.14:8080;
server 192.168.0.15:8080;
fair;
}
5)、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。(适用于请求一致性,如缓存服务器)
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream mysvr {
server 192.168.0.14:8080;
server 192.168.0.15:8080;
hash $request_uri;
hash_method crc32;
}

 

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

upstream mysvr {
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要使用负载均衡的server中增加
proxy_pass http://bakend/;

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

 

原文出处:http://ajita.iteye.com/blog/1715269
分享到:
评论

相关推荐

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

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

    nginx负载均衡实现

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

    动态管理nginx负载均衡.zip

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

    Linux下nginx负载均衡

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

    nginx负载均衡配置文件demo

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

    nginx负载均衡配置文件实例

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

    企业级keepalived高可用实战与Nginx负载均衡视频教程.zip

    3. Nginx负载均衡配置:学习Nginx的负载均衡器配置,包括轮询、最少连接、IP哈希等多种策略,以及如何根据业务需求选择合适的策略。 4. Keepalived与Nginx的集成:如何结合两者实现高可用性和负载均衡,确保即使在...

    nginx负载均衡部署

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

    Nginx负载均衡配置

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

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

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

    Nginx负载均衡搭建及配置技术

    Nginx 支持多种操作系统,包括 CentOS 7.2,本文将介绍如何在 CentOS 7.2 上搭建 Nginx 负载均衡配置。 在开始之前,确保系统网络正常、yum 可用,并关闭 iptables 和 selinux,因为这些因素可能对 Nginx 的安装和...

    LVS & Nginx负载理论对比

    LVS & Nginx负载均衡优缺点对比

    nginx负载配置,动静配置,tomcat省略项目名配置

    标题中的“nginx负载配置,动静配置,tomcat省略项目名配置”涵盖了三个主要的IT知识点,它们在构建高效、可扩展的Web服务环境中至关重要。接下来,我们将详细探讨这些概念。 1. Nginx 负载均衡配置: Nginx 是一款...

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

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

    nginx负载均衡ssl证书认证强制跳转https+keeplived+apache

    在构建高可用性和安全性的网络服务时,"nginx负载均衡ssl证书认证强制跳转https+keeplived+apache"是一个常见的架构模式。该模式结合了Nginx的反向代理和负载均衡能力、Keepalived的高可用性保证以及SSL证书来确保...

    nginx负载均衡.docx

    【Nginx负载均衡】 Nginx是一款高性能的HTTP和反向代理服务器,常用于实现负载均衡,以提升系统的可用性和响应效率。在阿里云服务器上搭建Nginx负载均衡,可以有效地分发请求到多台后端服务器,降低单台服务器的...

    nginx负载均衡配置-windows.docx

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

    5、redis session 实现Nginx负载均衡多ip同步1

    Redis Session 实现 Nginx 负载均衡多 IP 同步 Redis Session 是一种基于 Redis 的会话管理机制,通过使用 Redis 来存储会话数据,实现了会话的持久化和共享。Nginx 负载均衡是通过使用 Nginx 服务器来实现多个...

Global site tag (gtag.js) - Google Analytics