在 Debian 下配置 Nginx 反向代理 的步骤如下,适用于常见场景(如把请求转发到后端服务、Node.js / Java / Python 服务、或另一个 Web 服务器)。
一、安装 Nginx(如果还没装)
sudo apt update
sudo apt install nginx -y
安装完成后:
sudo systemctl status nginx
二、基本反向代理配置示例
1️⃣ 编辑 Nginx 配置文件
推荐方式:新建一个站点配置文件
sudo nano /etc/nginx/sites-available/reverse-proxy
2️⃣ 示例配置(反向代理到本地 8080 端口)
server {
listen 80;
server_name example.com; # 改成你的域名或 IP
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:后端服务地址proxy_set_header:传递真实客户端信息
三、启用配置
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/
四、检查并重启 Nginx
sudo nginx -t
sudo systemctl restart nginx
五、常见场景示例
✅ 1. 反向代理 HTTPS 后端(如 Node.js / Spring Boot)
location / {
proxy_pass https://127.0.0.1:8443;
proxy_ssl_verify off; # 本地证书可关闭验证
}
✅ 2. 反向代理 WebSocket
location /ws/ {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
✅ 3. 反向代理 + 静态文件
location / {
proxy_pass http://127.0.0.1:8000;
}
location /static/ {
root /var/www/html;
expires 30d;
}
✅ 4. 反向代理到另一个域名
location /api/ {
proxy_pass http://api.example.com/;
}
⚠️ 注意 /api/ 末尾是否带 /,会影响转发路径。
六、常用调试命令
# 查看错误日志
sudo tail -f /var/log/nginx/error.log
# 查看访问日志
sudo tail -f /var/log/nginx/access.log
# 重载配置(不中断服务)
sudo nginx -s reload
七、防火墙(如启用 UFW)
sudo ufw allow 'Nginx Full'
八、总结
✅ Debian 下 Nginx 反向代理的核心就是:
proxy_pass http://后端地址;
proxy_set_header 传递头信息;
如果你有具体场景(如 Docker / HTTPS / 负载均衡 / 多服务路由),可以告诉我,我可以给你更精确的配置。