nginx的负载模式
多节点负载的配置
1 | upstream client { |
upstream
的分配方式
轮询
1
2
3
4upstream client {
server 192.168.2.1:20031;
server 192.168.2.1:20011;
}权重
1
2
3
4upstream client {
server 192.168.2.1:20031 weight=1;
server 192.168.2.1:20011 weight=1;
}ip_hash
:每个请求按照访问IP
的hash
结果分配,这样每个client
固定访问一个后端,可以解决session
一致的问题。1
2
3
4
5upstream client {
ip_hash;
server 192.168.2.1:20031 weight=1;
server 192.168.2.1:20011 weight=1;
}url_hash
:每个请求按照url
的hash
结果分配,使得每个url
固定访问一个后端,主要用于缓存服务器。1
2
3
4
5
6
7upstream client {
hash $request_uri;
# 一致性算法
hash_method crc32;
server 192.168.2.1:20031 weight=1;
server 192.168.2.1:20011 weight=1;
}fair
:根据后端响应时间来分配,即rt
越短,有限分配级别越高1
2
3
4
5upstream client {
fair;
server 192.168.2.1:20031 weight=1;
server 192.168.2.1:20011 weight=1;
}
upstream
节点参数配置
server
后的参数
1 | upstream client { |
address
:地址必须配置down
:标记server
停用backup
:标记是备用服务器weight
:设置权重max_fails
、fail_timeout
:错误次数、达到错误次数多久不再访问
引用参数
fastcgi.conf
文件里有一些可以使用的参数
1 | location / { |
一个多节点负载的配置
1 | http { |
校验客户端IP
指向固定的集群地址
1 | location / { |
proxy_pass
路径
URL地址:127.0.0.1/demo/index.html
实际访问i地址:client/demo/index.html
1 | location /demo { |
静态地址
URL地址:127.0.0.1/index.html
实际访问i地址:/home/front/index.html
1 | location / { |
安装之前
1 | sudo yum install -y yum-utils |
前后端分离的集群 session处理
后端是一个集群部署,后端路径与前端路径不同,则需要复制 session。
1 | server { |
如果是 java 后端,还需要配置
1 | registry.addMapping("/**") |