主题
反向代理基础
反向代理是 Nginx 最常用的功能之一,通过将客户端请求转发给后端服务器,实现请求分发、负载均衡与安全防护。
一、反向代理原理
- 客户端发送请求到 Nginx
- Nginx 根据 location 或 server 块配置将请求转发到后端服务器
- 后端服务器处理请求并返回响应
- 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:内置变量,传递请求相关信息
三、常用优化建议
- 设置缓存与超时:
proxy_cache,proxy_connect_timeout,proxy_read_timeout - 使用负载均衡:可配置多个后端服务器,通过
upstream块实现轮询、IP 哈希等策略 - 配合 SSL:对前端与后端使用 HTTPS,确保安全传输
- 日志分离:便于分析代理请求和性能
掌握 Nginx 反向代理基础,可以实现请求分发、隐藏真实服务器、提高 Web 应用的性能与安全性。