Tengine基础9

2022-05-03 10:42:52 浏览数 (1)

后面对这个配置的不同部分进行详细分析


负载均衡

nginx可以很简单的配置成http负载均衡服务器,对前端的请求进行转发

代码语言:javascript复制
    upstream test_apps {
        server x.x.x.x:80  max_fails=1 fail_timeout=10s weight=25;
        server y.y.y.y:80  max_fails=1 fail_timeout=10s  weight=25;
        server x.x.x.x:80  max_fails=1 fail_timeout=10s  weight=25;
        server y.y.y.y:80  max_fails=1 fail_timeout=10s  weight=25;
    }

upstream 是nginx 负载均衡的主要模块,它提供了一个简单方法来轮询后端的服务器

server 使用于 upstream 环境,服务名称可以是一个域名,一个ip地址,ip地址加端口,也可以是UNIX Socket。


Item

Type

comment

max_fails

NUMBER

参数fail_timeout指定的时间里允许对服务器请求失败的次数(默认为1)

weight

NUMBER

权重,值越高,被分配的请求数越多(默认为1)

fail_timeout

TIME

失效超时时间

down

-

标记服务器离线

backup

-

标记服务器,在所有非backup服务器宕机的时候才启用

反向代理

代码语言:javascript复制
	location / {
	    proxy_pass http://test_apps;
            proxy_set_header X-Forwarded-For  $remote_addr;
	
	}

状态检查

单纯轮询,其中一台出问题后,会影响一定比例请求的正常响应,加入检查模块就可以避免此问题

这个检查逻辑就是 ngx_http_upstream_check_module 模块提供的,如果使用官方版,需要额外编译加入此模块

代码语言:javascript复制
    upstream test_apps {
        server x.x.x.x:80  max_fails=1 fail_timeout=10s weight=25;
        server y.y.y.y:80  max_fails=1 fail_timeout=10s  weight=25;
        server x.x.x.x:80  max_fails=1 fail_timeout=10s  weight=25;
        server y.y.y.y:80  max_fails=1 fail_timeout=10s  weight=25;
        check interval=5000 fall=5 rise=2 timeout=2000 default_down=false type=http;
        check_http_send "HEAD /health_status HTTP/1.0rnrn";
        check_http_expect_alive http_2xx http_3xx;
    }

0 人点赞