首页 > 系统相关 >nginx 负载均衡

nginx 负载均衡

时间:2023-03-31 17:03:46浏览次数:655  
标签:负载 http xuniji 192.168 server nginx proxy 均衡 80

准备

  • 虚拟机one:192.168.30.135:80
  • 虚拟机two:192.168.30.128:80
  • 两个虚拟机装的nginx都是:nginx version: nginx/1.18.0
  • 官网参考地址: http://nginx.org/

 

配置代理

  • 在各虚拟机上的conf.d文件夹下建立nginx配置文件,名字分别为:“xuniji_one.conf”、“xuniji_two.conf”
  • 反向代理我写在了xuniji_one.conf中,如下图:
    • 图中参数介绍:

      • upstream后面的名称与proxy_pass后面的地址对应。(名称可以随意写)

      • upstream中的两个server地址就是两个服务器的地址。
      • proxy_pass:设置后端代理服务器的地址。这个地址(address)可以是一个域名或ip地址和端口,或者一个 unix-domain socket路径。
      • proxy_set_header:就是可设置请求头-并将头信息传递到服务器端。

      

测试

打开浏览器,访问设置代理的服务器(www.xuniji.one.com)。每次访问最终都是请求不同的服务器。

 

 

 

知识点补充

nginx的负载均衡策略有六种:

1、轮询(默认策略,nginx自带策略):我上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略。会将每个请求按时间顺序分配到不同的后端服务器。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 http {     upstream xuniji_fuzai {         server 192.168.30.128:80;         server 192.168.30.135:80;     }        server {         listen 81;         server_name www.xuniji.one.com;            location / {             proxy_pass http://xuniji_fuzai;             proxy_set_header Host $proxy_host;         }     } }

  

2、weight(权重,nginx自带策略):指定轮询的访问几率,用于后端服务器性能不均时调整访问比例。权重越高,被分配的次数越多。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 http {     upstream xuniji_fuzai {         server 192.168.30.128:80 weight=7;         server 192.168.30.135:80 weight=2;     }        server {         listen 81;         server_name www.xuniji.one.com;            location / {             proxy_pass http://xuniji_fuzai;             proxy_set_header Host $proxy_host;         }     } }

  

3、ip_hash(依据ip分配,nginx自带策略):指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,可以解决session不能跨服务器的问题。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 http {     upstream xuniji_fuzai {         ip_hash;         server 192.168.30.128:80;         server 192.168.30.135:80;     }        server {         listen 81;         server_name www.xuniji.one.com;            location / {             proxy_pass http://xuniji_fuzai;             proxy_set_header Host $proxy_host;         }     } }

  

4、least_conn(最少连接,nginx自带策略):把请求转发给连接数较少的后端服务器。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 http {     upstream xuniji_fuzai {         #把请求转发给连接数比较少的服务器         least_conn;         server 192.168.30.128:80;         server 192.168.30.135:80;     }        server {         listen 81;         server_name www.xuniji.one.com;            location / {             proxy_pass http://xuniji_fuzai;             proxy_set_header Host $proxy_host;         }     } }   

  

5、fair(第三方):按照服务器端的响应时间来分配请求,响应时间短的优先分配。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 http {     upstream xuniji_fuzai {         fair;         server 192.168.30.128:80;         server 192.168.30.135:80;     }        server {         listen 81;         server_name www.xuniji.one.com;            location / {             proxy_pass http://xuniji_fuzai;             proxy_set_header Host $proxy_host;         }     } }  

  

6、url_hash(第三方):该策略按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,需要配合缓存用。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 http {     upstream xuniji_fuzai {         hash $request_uri;         server 192.168.30.128:80;         server 192.168.30.135:80;     }        server {         listen 81;         server_name www.xuniji.one.com;            location / {             proxy_pass http://xuniji_fuzai;             proxy_set_header Host $proxy_host;         }     }

标签:负载,http,xuniji,192.168,server,nginx,proxy,均衡,80
From: https://www.cnblogs.com/itjeff/p/17276779.html

相关文章

  • nginx 详解
    1、location[=|~|~*|^~]/uri/{…}  2、符号解释=    开头表示精确匹配^~    开头表示url以某个常规字符串开头,理解为匹配url路径即可,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^$/static//aa匹配到~    区分大小写的正则匹配~*......
  • nginx启动成功,页面还是无法访问?
    问题如下图: 1.检查Nginx配置文件:nginx-t2.每次修改配置文件都要重新加载、启动nginx-sreload#重新载入配置文件nginx-sreopen#重启Nginx3.查看nginx进程 4.查看防火墙状态(不同Linux版本防火墙不同,以CentOSLinuxrelease7.9为例)查看状态:systemctlstatusfi......
  • docker 安装nginx
    dockerpullnginx下载最新版Nginx镜像(其实此命令就等同于:dockerpullnginx:latest)#创建挂载目录mkdir-p/home/nginx/confmkdir-p/home/nginx/logmkdir-p/home/nginx/html#生成容器dockerrun--namenginx-p9001:80-dnginx:latest#将容器nginx.conf文件复......
  • hdfs disk balancer 磁盘均衡器
    目录1、背景2、hdfsbalancer和hdfsdiskbalancer有何不同?3、操作3.1生成计划3.2执行计划3.3查询计划3.4取消计划4、和diskbalancer相关的配置5、额外知识点5.1新的block存储到那个磁盘(卷)中5.2磁盘数据密度度量标准6、参考文档1、背景在我们的hadoop集群运行一段过......
  • Windows下Nginx安装与配置教程
    一、前言1、Nginx是什么?Nginx是一个开源的Web服务器,同时Nginx也提供了反向代理和负载均衡的功能。Nginx通常作为负载均衡器暴露在外网接受用户请求,同时也使用其反向代理的功能,将用户的请求转发到实际提供服务的内网服务器。2、Windows什么情况下需要Nginx?通常来说Windows下IIS......
  • 在windows服务器上安装nginx
    今天在WindowsServer2012R2服务器上安装了nginx 一、安装nginx(http://nginx.org/download/nginx-1.10.0.zip)下载windos版本的nginx,然后解压到服务器上,我的解压地址C:\ProgramFiles\Nginx二、将Nginx设置为Windows服务这里需要下载一个小工具(http://repo.jen......
  • Windows 下Nginx 的安装与配置
    目录快速导航环境变量配置验证安装是否成功启动并验证启动是否成功NginxWindows基本操作指令Nginx的基本概念正向代理反向代理负载均衡动静分离访问控制Nginx配置proxy_passroot/alias详解root基本用法location的最左匹配原则index详解alias基本用法相关参考推荐阅读Nginx官网......
  • 第九天(nginx的相关总结)
    Nginx总结 文章目录1.Nginx1.1.什么是Nginx1.2.WEB服务器1.3.安装Nginx1.3.1.yum安装1.3.1.1.启动命令1.3.1.2.配置文件1.3.1.3.web目录1.3.2.安装包安装1.4.Nginx配置文件1.5.虚拟主机的三种方式1.6.外网配置1.6.1.配置开始1.7.内网配......
  • nginx文件存储
    yuminstall-yhttpd-tools htpasswd-cb/etc/nginx/htpasswdmynginx123456 auth_basic"Pleaseentertheusernameandpassword";#这里是验证时的提示信息auth_basic_user_file/etc/nginx/htpasswd; location/{  if($request_filename~*^.*?\.(txt|pd......
  • HDFS Balancer负载均衡器
    目录1、背景2、什么是平衡2.1每个DataNode的利用率计算2.2集群的利用率2.3平衡3、hdfsbalancer语法4、运行一个简单的balance案例4.1设置平衡数据传输带宽4.2执行ban......