背景

前后端分离的趋势下,Nginx 已经成为后端开发必须了解的技术点之一。

常用命令

修改或查看 Nginx 配置时,推荐先用 nginx -t 检测配置文件语法,同时它会输出配置文件路径:

1
2
3
4
5
# Linux
sudo nginx -t 2>&1 | grep "file"

# Windows
nginx -t 2>&1 | findstr "file"

2>&1 的作用是把标准错误(stderr)重定向到标准输出(stdout),因为 nginx -t 的提示信息通常走 stderr 输出。

反向代理配置写法

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name yourdomain.com;

location /api {
proxy_pass http://localhost:8080;
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;
}
}

关键说明:

字段 作用
listen 监听的端口
location /api 路径匹配,/ 匹配所有路径;多个服务可细化路径区分
proxy_pass 转发的目标地址
X-Real-IP 传递客户端真实 IP(否则后端看到的是代理 IP)
X-Forwarded-For 记录客户端及中间代理的 IP 链
X-Forwarded-Proto 传递原始请求协议(HTTP / HTTPS)

小结

  • 修改配置前先用 nginx -t 检查语法和定位文件
  • 反向代理记得配置请求头透传客户端真实信息
  • 多个服务可通过细化 location 路径做路由分发

参考:CSDN - nginx相关的经历