1. 反向代理
 原理
用户请求先到 Nginx,再由 Nginx 把请求转发给后端的应用服务器(比如 TomcatNode.js
Spring Boot)。
Nginx 在这里就像中转站,客户端只知道自己连的是 Nginx,不知道真正提供服务的是哪台后
端。
客户端 ---> Nginx ---> 多台后端服务器
     
实验配置
编辑 nginx.conf ,在 server 块里添加:
  server {
            listen 80;
            server_name localhost;
                  location / {
                        proxy_pass http://127.0.0.1:8080; # 把请求转发到后端 8080 端口
                        proxy_set_header Host $host; # 保留原始的 Host
                        proxy_set_header X-Real-IP $remote_addr; # 获取客户端真实 IP
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
        }
使用 nginx -s reload或nginx -t查询
如果后端有多台服务器需要反向代理,则配置如下:

http {

    #upstream 后端地址池的名称 { 中间写后端服务器的ip:port}如:
    upstream backend {
      server 192.168.110.129;
      server 192.168.110.130;  
     }

这里有个注意点 这个server一定是在http里边的  得使用{}全部框起来  否则无法执行
2、负载均衡
Nginx 的负载均衡是它最常用的功能之一,可以将客户端请求分发到多台后端服务器,提高系统的并发
能力、可用性和稳定性。
2.1 基本原理
Nginx 作为反向代理服务器,接收来自客户端的请求,然后根据配置的负载均衡策略,将请求转发到后
端的多个应用服务器(upstream server)。
好处:
提高性能:分担单台服务器压力
高可用性:某台服务器宕机,Nginx 自动转发到其他正常的节点
可扩展性:轻松添加或移除后端节点
2.2 常见负载均衡策略
以下是 Nginx 支持的几种常见的分流算法:
2.2.1 轮询(Round Robin
轮询算法是 Nginx 的默认分流算法。它按顺序将请求依次分配给每一台后端服务器,直到最后
一台服务器,然后重新从第一台服务器开始。这种方法简单且均匀地分配了流量。
数据流向:每个请求依次被分配到下一个服务器。假设有三台服务器(Server AServer BServer
C),第一个请求被分配到 Server A,第二个请求分配到 Server B,第三个请求分配到 Server C,第四
个请求又回到 Server A,依此类推。
特点:请求均匀分布,无视服务器的当前负载和响应时间。
配置示例:
2.2.2 最少连接数(Least Connections
最少连接数算法将请求分配给当前活动连接数最少的服务器。这种算法适用于请求处理时间不均匀的情
况,可以有效平衡服务器的负载。
数据流向:每个请求被分配到当前连接数最少的服务器。例如,Server A 2 个连接,Server B 5
连接,新的请求会被分配到 Server A
特点:动态均衡负载,适用于请求处理时间不一的场景。
weight 权重 控制分配资源的次数
写入一段数据在索引文本当中  这里是在129和130里边写入
通过128控制查看
这里使用curl +ip就能查看到后边两台虚拟机当中的文本信息并且之前在后端中设置了权重

所以这里会以3:1的比例输出。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐