侧边栏壁纸
  • 累计撰写 31 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

怎么通过Nginx实现服务的反向代理和负载均衡

AllyTester
2024-08-18 / 0 评论 / 0 点赞 / 5 阅读 / 0 字

通过 Nginx 实现反向代理和负载均衡的核心是配置 nginx.conf 文件。

实现反向代理

通过 Nginx 将客户端请求转发到指定的后端服务器,隐藏真正的服务地址,保障一定的服务安全性。

假设我们现在要将 80 端口监听的请求,转发到 8090 端口的服务:

打开配置文件(命令:sudo vi /etc/nginx/nginx.conf),找到 80 端口监听的位置,将

基础配置

server {
    listen 80;  # 监听 80 端口
    server_name example.com;  # 域名或IP

    location / {
        proxy_pass http://myapp;  # 转发到后端服务
        proxy_set_header Host $host;       # 传递请求头
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# 定义后端服务地址
upstream myapp {
    server 127.0.0.1:8090;  # 后端服务地址
}

实现负载均衡

在高并发的场景下,Nginx 可以根据服务器的负载情况,将请求分发到多个应用服务器上,提高系统的可用性和性能。

Nginx 的负载均衡策略:

1.轮询策略,将请求轮流转发给可用的应用服务器,是默认策略。

2.加权轮询策略,可以按照权重给可用服务器分发请求,比如有两个可用的后端服务器,Nginx 权重配比设为 3:2,则100个请求,有60个转发到服务器A,40个转发到服务器B。

配置demo(加权轮询策略):

# 定义服务器组
upstream activity_servers {
    server 192.168.2.10:8090 weight=3; # 高性能新机器
    server 192.168.2.11:8090 weight=2; # 老机器
}

server {
    listen 80;
    server_name example.com;
    # 请求转发
    location / {
        proxy_pass http://activity_servers;
    }
}

0

评论区