以下是最核心的反向代理实现步骤,专注于 “客户端→Nginx 代理→后端服务” 的基础转发功能:

一、准备 2 台服务器

角色IP 示例需安装软件
代理服务器192.168.1.10Nginx
后端服务器192.168.1.11Nginx/Apache

二、后端服务器配置(192.168.1.11)

  1. 安装并启动 Web 服务

    # 安装Nginx
    yum install -y nginx   # CentOS/RHEL
    # 或 apt install -y nginx  # Ubuntu/Debian
    # 启动服务
    systemctl start nginx
    systemctl enable nginx
  2. 设置标识页面(便于验证)

    echo "Backend Server: 192.168.1.11" > /usr/share/nginx/html/index.html

三、代理服务器配置(192.168.1.10)

  1. 安装 Nginx

    yum install -y nginx   # 同上
  2. 创建反向代理配置

    # 备份默认配置
    mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
    # 新建代理配置
    cat > /etc/nginx/conf.d/proxy.conf << 'EOF'
    server {
    listen 80;
    server_name localhost;
    location / {
    # 转发到后端服务器
    proxy_pass http://192.168.1.11:80;
    # 传递客户端信息
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    }
    }
    EOF
  3. 启动 Nginx

    # 检查配置
    nginx -t
    # 启动服务
    systemctl start nginx
    systemctl enable nginx

四、验证反向代理

  1. 客户端直接访问后端
    浏览器打开 http://192.168.1.11,显示 Backend Server: 192.168.1.11

  2. 通过代理服务器访问
    浏览器打开 http://192.168.1.10同样显示后端页面内容,说明代理成功。

五、核心验证点

  • 客户端仅需知道代理服务器 IP(192.168.1.10),无需知道后端 IP
  • 后端服务器日志中可看到客户端真实 IP(而非代理服务器 IP)

以上步骤完成即实现了最基础的反向代理功能,所有操作均围绕 “请求转发” 核心目标,去除了额外扩展配置。

location / {

    proxy_pass http://192.168.42.1;

}

     proxy_set_header Host $host; # 修改请求头,添加Host字段

proxy_set_header X-Real-IP $remote_addr; # 修改请求头,添加X-Real-IP字段

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 修改请求头,添加X-Forwarded-For字段 client_max_body_size 10m; # 允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数, proxy_connect_timeout 90; # nginx跟后端服务器连接超时时间\(代理连接超时\) proxy_send_timeout 90; # 后端服务器数据回传时间\(代理发送超时\)

proxy_read_timeout 90; # 连接成功后,后端服务器响应时间\(代理接收超时\)

proxy_buffer_size 4k; # 设置代理服务器(nginx)保存用户头信息的缓冲区大小

proxy_buffers 4 32k; # proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; # 高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; # 设定缓存文件夹大小,大于这个值,将从upstream服务器传

负载均衡

模式(算法)

   轮询(默认)(RR)Round Robin:将请求平均分配给所有服务器,

   最小连接数(Least Connections):该策略将请求分发给当前处理连接数最少的服务器,适合连接数波动较大的场景,如长连接服务。

  IP 哈希(IP Hash):通过请求的客户端IP进行哈希运算,将来自同一IP地址的请求分发到同一台服务器上,适合有会话保持需求的场景。

  权重(Weight):为不同的服务器分配权重,Nginx 将根据设置的权重值来分发请求,权重越高的服务器将承担更多的流量,适合服务器性能不均衡的场景

upstream web1{

     #默认轮询

       server 192.168.x.x

       server 192.168.x.x

        ...

}

upstream wed2 {

# 最小连接数负载均衡算法 least_conn;

# 后端服务器列表

         server 192.168.1.100:80;

         server 192.168.1.101:80;

        ...

}

upstream wed3 {

ip_hash #ip哈希模式

# 后端服务器列表

         server 192.168.1.100:80;

         server 192.168.1.101:80;

        ...

}

posted on 2025-09-16 15:20  ycfenxi  阅读(17)  评论(0)    收藏  举报