- linux中配置nginx负载均衡:当用户访问量过多时通过配置多个服务,通过nginx配置将访问按照一定的策略分配到不同的服务中,从而达到负载均衡的目的.
- 如果linux中配置了多个服务,通过以下方式配置nginx负载均衡
- 修改nginx.conf配置文件
- 在http模块下添加一个"upstream"模块
- "myserver “为自定义的名称
upstream myserver {
server 10.8.31.96:8080;
server 10.8.31.96:8081;
}
- 修改server模块下的内容
- 将location下的"proxy_pass ”修改为"http://"+自定义的名称
server {
listen 80;
server_name 10.8.31.96;
location / {
proxy_pass http://myserver;
}
}
- 重启nginx使配置文件生效,此时若访问本机ip地址,则每次请求将会按顺序平均分配到8080和8081两个端口上
nginx负载均衡方式
- 轮询
- 将所有请求按照时间顺序分配到不同的服务器上,如果服务器出现异常无法访问则自动去除无法访问的服务器,nginx默认采用的就是轮询的方式
- 轮询会按照upstream中定义的服务器列表平均分配
upstream myserver {
server 10.8.31.96:8080;
server 10.8.31.96:8081;
}
- 权重
- 为不同的服务器设置访问的优先级,因为每台服务器的性能不一致,将大多数请求交给高性能服务器处理会发挥出服务器的最大性能.
- 使用weight关键字设置服务器权重,weight值越大,访问的倍数越大
upstream myserver {
server 10.8.31.96:8080 weight=1;
server 10.8.31.96:8081 weight=2;
}
- iphash
- 通过访问的ip地址分配请求服务器,这样每一个ip都只会访问同一个服务器
upstream myserver {
ip_hash;
server 10.8.31.96:8080 weight=1;
server 10.8.31.96:8081 weight=2;
}
- 最少连接
upstream myserver {
least_conn;
server 10.8.31.96:8080 weight=1;
server 10.8.31.96:8081 weight=2;
}
- fair
- 按照后端服务器器的响应时间长短来分配请求,响应时间短的优先分配
upstream myserver {
server 10.8.31.96:8080 weight=1;
server 10.8.31.96:8081 weight=2;
fair;
}