教程 nginx tutorial

反向代理基础

反向代理是 Nginx 最常用的功能之一,通过将客户端请求转发给后端服务器,实现请求分发、负载均衡与安全防护。

一、反向代理原理

  1. 客户端发送请求到 Nginx
  2. Nginx 根据 location 或 server 块配置将请求转发到后端服务器
  3. 后端服务器处理请求并返回响应
  4. Nginx 将响应返回给客户端
text
客户端 -> Nginx -> 后端服务器 -> Nginx -> 客户端

`

反向代理隐藏了真实的后端服务器地址,提高安全性与可扩展性。

二、基础配置示例

nginx
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

核心指令说明

  • proxy_pass:指定后端服务器地址,可为 IP 或域名
  • proxy_set_header:传递客户端请求头给后端,保持原始请求信息
  • $host / $remote_addr / $proxy_add_x_forwarded_for / $scheme:内置变量,传递请求相关信息

三、常用优化建议

  1. 设置缓存与超时:proxy_cache, proxy_connect_timeout, proxy_read_timeout
  2. 使用负载均衡:可配置多个后端服务器,通过 upstream 块实现轮询、IP 哈希等策略
  3. 配合 SSL:对前端与后端使用 HTTPS,确保安全传输
  4. 日志分离:便于分析代理请求和性能

掌握 Nginx 反向代理基础,可以实现请求分发、隐藏真实服务器、提高 Web 应用的性能与安全性。