nginx upstream轮询配置

nginx upstream

  nginx的upstream官方地址为:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html

  轮询分为多种,分为普通轮询(一个接一个的进行访问,即按加权轮转的方式将请求分发到各服务器),ip_hash轮询,url_hash轮询,以及fair轮询等方法。

  nginx upstream轮询配置。

  upstream在http中,与server同等级别

  upstream 域名 {

    server IP地址;

  }

  server {

    location / {

      proxy_pass http://域名;

    }

  }

  fail轮训: 按照响应时间进行分配请求,响应时间短,即rt小的后端服务器优先分配请求;

  upstream backup {

    fail;

    server 172.16.76.150;

    server 172.16.76.151;

  }

  与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

  upstream backup  {

    server 172.16.76.150;

    server 172.16.76.151;

     hash $request_uri;

    hash_method crs32;

  }  其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数

  在upstream的server IP地址/域名/socket后面跟的参数:

  weight = number

    设定服务器的权重 ,默认是1

  max_fails= number 

    设定nginx与服务器的通信次数,在fail_timeout参数定义的时间段内,如果失败的次数达到次指,nginx就认为这台服务器不能进行使用。在下一个fail_timeout时间段内,nginx服务器不会访问这台服务器。

  fail_timeout = time

    统计失败尝试次数的时间段。在这段时间内,服务器失败次数达到指定的尝试次数,服务器就被认为不可用

    服务器认为不可用的时间段

  backup

    服务器备机地址

  down

    标志服务器永久不可用,可以跟ip_hash一起使用。

  

时间: 2024-10-21 20:09:59

nginx upstream轮询配置的相关文章

Nginx日志轮询切割

Nginx日志轮询切割 默认情况下,Nginx会把所有的访问日志生成到一个指定的访问日志文件access*.log里,但这样一来,时间长了就会导致日志单个文件很大,不利于日志的分析和处理,因此有必要对Nginx日志按天或者按小时等进行分割,具体要看具体线上业务,使其分成不同的文件保存.这里我们按天进行切割日志. 1.配置日志切割脚本,具体如下: [[email protected] ~]# mkdir -p /server/scripts/ [[email protected] ~]# cd /

nginx 日志轮询脚本

nginx 日志轮询脚本      nginx 没有自带日志轮询功能, 这个脚本必须配合crontab来实现日志的按天轮询.生产环境使用下还是很靠谱和方便,推荐给大家使用.  里面具体的内容大家自己看把有点shell基础就能明白的.  crontab -e 00 08 * * * /bin/bash /opt/scripts/BackupNginxLog.sh BackupNginxLog.sh #!/bin/bash LogPath=/usr/local/logs_nginx BackupPa

nginx 下轮询简易负载均衡

我拿三台服务器做实验,负载均衡服务器为1号  其他为2,3 号机 负载均衡服务器 ip 10.0.127.247 2号机 ip 10.0.127.47 3号机ip 10.0.127.96 首先在2,3,号机上分别搭建一个站点如下,以2 号机为例,3号机操作一样 1,进入到 Nginx 虚拟站点配置文件目录下 cd /etc/nginx/sites-available/ 2.复制 一份站点配置 模板 sudo cp default  www.hjc.com 3,对创建的站点进行配置 sudo vi

Docker 部署nginx实现轮询效果

实现轮询效果 1. 进入Docker进行操作 1 docker rm -f $(docker ps -a |awk ‘{print $1}’) # 删除所有docker,方便重新开始 2 docker run -itd --name=web1 -p 192.168.220.135:81:80 nginx:latest # 后台启动一个docker容器 3 docker run -itd --name=web2 -p 192.168.220.135:82:80 nginx:latest # 后台启

nginx日志轮询切割实战

apache切割工具: cronlog 和rotare等日志切割工具 nginx切割工具有: nginx cron+x    scripts [[email protected] ~]# mkdir -p /server/scripts [[email protected] ~]# cd /server/scripts/ [[email protected] scripts]# vim cut_nginx_log.sh #vim输入如下内容 cd /application/nginx/logs

配置Windows环境的DNS轮询(简单的负载均衡)

   前言:        什么是DNS轮询? 一个域名针对多个ip A记录的解析,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡                      DNS轮询的优点: 零成本:只是在DNS服务器上绑定几个A记录,域名注册商一般都免费提供解析服务: 部署简单:就是在网络拓扑进行设备扩增,然后在DNS服务器上添加记录. DNS轮询的缺点: 1.可靠性低 假设一个域名DNS轮询多台服务器,如果其中的一台服务器发生故障,那么所有的访问

Nginx - upstream 模块及参数测试

目录 - 1. 前言- 2. 配置示例及指令说明    - 2.1 配置示例    - 2.2 指令    - 2.3 upstream相关变量- 3. 参数配置及测试    - 3.1 max_fails 和 fail_timeout    - 3.2 proxy_next_upstream    - 3.3 nginx 与后端web连接时间的三个参数 1. 前言 当 Nginx 作为反向代理使用的时候,upstream模块有着举足轻重的地位,官方解释: 2. 配置示例及指令说明 2.1 配置

nginx日志配置,以及日志轮询

一.为nginx配置错误日志 Nginx错误日志是调试nginx的重要手段,属于核心功能模块的参数(ngx_core_module)该参数名字为err_log,是放在Main区块中全局配置 err_log的语法格式以及参数语法说明如下 err_log   file              level(级别) 关键字           日志文件              错误日志级别 其中关键字err_log不能改变 1 1.在配置文件中写入error_log logs/error.log e

Nginx 安装配置 禁止使用IP访问 rewrite重写 别名设置 日志轮询

1.yum install pcre pcre-devel -y#支持rewrite重写功能 2.yum -y install openssl openssl-devel#支持https功能 3.useradd nginx -s /sbin/nologin -M#添加用户 4.tar zxf nginx-1.6.2.tar.gz   cd nginx-1.6.2./configure \--user=nginx --group=nginx \--prefix=/application/nginx