负载均衡配置模块

一:ngx_http_upstream_module — upstream
1.作用:实现不同调度功能
1) 轮询分配请求(平均)

说明:每台web主机访问的次数相同
配置:

upstream zhangsb {
	server 10.0.0.8:80;
	server 10.0.0.7:80;
	server 10.0.0.9:80;
}
2) 权重分配请求(能力越强责任越重)

说明:谁的权重大,谁的访问次数就多
配置:

upstream oldboy {
      server 10.0.0.7:80 weight=3;
      server 10.0.0.8:80 weight=2;
      server 10.0.0.9:80 weight=1;
   }
3)实现热备功能

说明:作为备用,设置之后不会访问该服务器

upstream oldboy {
      server 10.0.0.7:80;
      server 10.0.0.8:80;
      server 10.0.0.9:80 backup;
   }
4)定义最大失败次数

配置:

max_fails=5
5)定义失败之后重发的间隔时间

配置:

fail_timeout=10s			--会给失败的服务器一次机会
6)设置限制与代理服务器同时活动的最大连接数

配置:

max_conns=0			--意味着没有限制,没设置默认就是0
6)设置永不可用,宕机

配置:

server 127.0.0.1:8081 down;
7)确保来自同一客户端的请求始终传递到同一服务器
upstream zhangsb {
	ip_hash;
	server 10.0.0.8:80;
	server 10.0.0.7:80;
	server 10.0.0.9:80;
}
2.实现不同调度算法

1. rr 轮询调度算法
2. wrr 权重调度算法
3. ip_hash 算法 (出现反复登录的时候)
4. least_conn 根据服务器连接数分配资源

二:ngx_http_proxy_module
1.proxy_pass
location / {
    proxy_pass http://zhangsb;
}

设置代理理服务器?的协议(http)和地址(域名或者IP地址)以及应映射位置
PS:proxy_pass后面的路径不带uri时,其会将location的uri传递给后端主机;
proxy_pass后面的路径是一个uri时,其会将location的uri替换为proxy_pass的uri;
(uri为域名后面的路径)

2.proxy_set_header

a.实现访问不同的网站地址,显示不同的网站页面

proxy_set_header Host $host;

配置步骤:
a).修改配置文件

[root@lb01 conf.d]# vim lb.conf
upstream zhangsb {
	server 10.0.0.8:80;
	server 10.0.0.7:80;
server 10.0.0.9:80;
}
server {
	listen       80;
	server_name  www.zhangsb.com;
	location / {
  		proxy_pass http://zhangsb;
  		proxy_set_header Host $host;
	}
}
server {
	listen       80;
	server_name  bbs.zhangsb.com;
	location / {
  		proxy_pass http://zhangsb;
  		proxy_set_header Host $host;
	}
}
server {
	listen       80;
	server_name  blog.zhangsb.com;
	location / {
  		proxy_pass http://zhangsb;
  		proxy_set_header Host $host;
	}
}

b)在主机文件hosts中加入bbs.zhangsb.com,blog.zhangsb.com
c)测试

A10负载均衡 NAT A10负载均衡器 配置文件_nginx

b.实现访问网站用户地址信息分析统计

proxy_set_header X-Forwarded-For $remote_addr;

a)修改配置文件

在每一个server下面添加上面一行配置信息

b)查看日志

tail -f /var/log/nginx/access.log

A10负载均衡 NAT A10负载均衡器 配置文件_服务器_02


可以从日志文件里面看到访问主机的详细信息

3.proxy_connect_timeout

定义与后端服务器?建?立连接的超时时?长,如超时会
出现 502 错误,默认为60s,?一般不不建议超出75s

4.proxy_send_timeout

将请求发送给后端服务器?的超时时?长;默认为60s

5.proxy_read_timeout

等待后端服务器?发送响应报?文的超时时?长, 默认为60s

6.proxy_cache_path
proxy_cache_path /data/nginx/cache;

设置缓存的路路径和其他参数

7.proxy_cache
proxy_cache proxycache;

指明调?用的缓存,或关闭缓存机制

8.proxy_cache_valid
proxy_cache_valid 200 302 301 1h;
proxy_cache_valid any 1m;

对特定响应码的响应内容的缓存时?长定义

9.proxy_next_upstream

当访问页面出现错误时,可以优雅显示

proxy_next_upstream error timeout http_404 http_502 http_403;