当前位置:首页 > 编程笔记 > 正文
已解决

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%的人还看了

猜你感兴趣

版权申明

本文"nginx实现负载均衡(三)":http://eshow365.cn/6-17600-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!