反向代理基础
反向代理是 Nginx 最常用的功能之一,通过将客户端请求转发给后端服务器,实现请求分发、负载均衡与安全防护。
一、反向代理原理
- 客户端发送请求到 Nginx
- Nginx 根据 location 或 server 块配置将请求转发到后端服务器
- 后端服务器处理请求并返回响应
- 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 应用的性能与安全性。
相关内容
- 备份与恢复 本节介绍 Nginx 配置备份与恢复方法,包括配置文件备份、日志备份、快速恢复和灾难恢复策略,保障服务安全可靠。
- 常用命令与服务管理 本节介绍常用的 nginx 命令与服务管理方法,包括启动、停止、重载、日志查看、配置检测等操作,帮助你熟练掌握 nginx 文档中的服务运维要点。
- Nginx 教程:目录结构与配置文件详解 本节 Nginx 教程详细介绍 nginx 目录结构与配置文件组成,帮助你掌握 nginx.conf、sites-enabled、logs 等常见路径及配置含义...
- Nginx 与 Docker 集成 本节介绍 Nginx 与 Docker 的集成方法,包括 Nginx 容器部署、配置卷挂载、端口映射和与后端服务协作,实现容器化高可用 Web 服务。
- FastCGI 工作原理 本节讲解 Nginx 与 FastCGI 的工作原理,包括请求转发、PHP-FPM 处理流程及数据交互方式,帮助你理解 nginx.conf 中动态内容处理机制...
- FastCGI 参数详解 本节详细讲解 Nginx 与 FastCGI 配合时的参数配置,包括 fastcgi_param 指令、标准参数与自定义参数,帮助你精确控制 PHP-FPM 请...