已解决
nginx实现负载均衡(三)
来自网友在路上 168868提问 提问时间:2023-10-09 04:18:41阅读次数: 68
最佳答案 问答题库688位专家为你答疑解惑
之前说过大部分我们用到的配置都是在http模块中配置的,这里要实现的负载均衡也是一样的,要在http模块中的http全局块中指定,这里我们先给出一个例子
demo
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;#定义一个名为名为 backend 的 upstream 指令域 ,默认使用的轮询,#每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,#故障系统被自动剔除,使用户访问不受影响。Weight 指定轮询权值,Weight值越大,#分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。# 默认的weight值是1upstream backend {server 127.0.0.1:8080; server 127.0.0.1:8081; }# 可以给每个服务器设定不同的权重upstream backend01 {server 127.0.0.1:8080 weight=2; server 127.0.0.1:8081 weight=1; }# 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。upstream backend02 {ip_hash;server 127.0.0.1:8080; server 127.0.0.1:8081; }server {listen 80;server_name 121.4.170.108;# 在页面输入121.4.170.108 会默认跳转到tomcat的页面location / {proxy_pass http://backend02;}}
}
定义负载均衡模块,upstream开头
我们在这里定义了三个负载均衡,分别名为backend,backend01,backend02,具体使用哪个需要在server块中指定,如这里proxy_pass 后面跟的是http://backend02;,也可以是http://backend01或者http://backend
server {listen 80;server_name 121.4.170.108;# 在页面输入121.4.170.108 会默认跳转到tomcat的页面location / {proxy_pass http://backend02;}}
配置负载均衡
定义负载均衡
使用upstream开头
定义一个名为名为 backend 的 upstream 指令域 ,默认使用的轮询,
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,
故障系统被自动剔除,使用户访问不受影响。Weight 指定轮询权值,Weight值越大,
分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。
默认的weight值是1
- demo01
定义的位置是在http的全局块中,这里定义了一个名为backend的负载均衡配置
upstream backend {server 127.0.0.1:8080; server 127.0.0.1:8081; }
- demo02
可以给每个服务器设定不同的权重
upstream backend01 {server 127.0.0.1:8080 weight=2; server 127.0.0.1:8081 weight=1; }
- demo03
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
upstream backend02 {ip_hash;server 127.0.0.1:8080; server 127.0.0.1:8081; }
还有别的配置规则,这里不一一举例
指定具体的负载均衡规则
就如我们上面所说,在proxy_pass后指定即可
server {listen 80;server_name 121.4.170.108;# 在页面输入121.4.170.108 会默认跳转到tomcat的页面location / {proxy_pass http://backend02;}}
查看全文
99%的人还看了
相似问题
- Docker篇之利用docker搭建ftp服务器可实现多用户上传
- 【Vue3】解决Vue打包后上传服务器 资源路径加载错误
- 【史上最细教程】服务器MySQL数据库完成主从复制
- 中间件安全:Apache Tomcat 弱口令.(反弹 shell 拿到服务器的最高控制权.)
- 服务器端请求伪造(SSRF)
- VMware 系列:戴尔服务器配置(格式数据、RAID5、安装ESXI)以及相关问题
- 超详细 | 实验室linux服务器非root账号 | 安装pip | 安装conda
- 腾讯云4核8G服务器配置价格表,轻量和CVM标准型S5实例
- 推荐一个windows上传linux服务器/linux服务器的docker镜像的工具,摆脱docker cp,以及解决常见问题。
- 2.6文件服务器
猜你感兴趣
版权申明
本文"nginx实现负载均衡(三)":http://eshow365.cn/6-17600-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 缓存与数据库双写一致性问题解决方案
- 下一篇: Qt之实现圆形进度条