Nginx反向代理配置教程:零基础也能轻松上手

为什么你需要了解Nginx反向代理

Nginx反向代理是让一台服务器接收外部请求,然后转发给内部其他服务(比如本地的Web应用或API)。
对于零基础用户来说,你只需要知道它能帮你:

  • 隐藏后端真实IP,提升安全性
  • 实现负载均衡,分散流量压力
  • 统一管理多个网站或应用

本文会从零开始,带你在Linux服务器上部署和配置Nginx反向代理。

准备工作:你需要什么

  1. 一台Linux服务器(推荐Ubuntu 20.04/22.04或CentOS 7+)。
  2. 一个已解析的域名(可选但推荐,因为直接用IP也能代理端口服务)。
  3. SSH登录工具(Windows用PuTTY或Windows Terminal,macOS/Linux直接用终端)。
  4. 后端服务(比如一个运行在 localhost:3000 的Node.js应用,或者另一个端口上的Nginx实例)。

检查环境:登录服务器后,先更新包管理器:

sudo apt update && sudo apt upgrade -y   # Ubuntu/Debian
sudo yum update -y                       # CentOS

安装Nginx并配置反向代理

第一步:安装Nginx

sudo apt install nginx -y    # Ubuntu/Debian
sudo yum install nginx -y    # CentOS

安装完成后启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

第二步:配置反向代理规则

Nginx的配置文件通常位于 /etc/nginx/sites-available/(Ubuntu)或 /etc/nginx/conf.d/(CentOS)。
我们创建一个新文件:

sudo nano /etc/nginx/sites-available/myapp   # Ubuntu
# 或者
sudo nano /etc/nginx/conf.d/myapp.conf       # CentOS

写入以下内容(假设后端服务运行在 127.0.0.1:3000):

server {
    listen 80;
    server_name yourdomain.com;   # 替换为你的域名或IP

    location / {
        proxy_pass http://127.0.0.1:3000;
        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 指定要转发的目标地址。其他几行设置客户端的真实信息,让后端能获取原始请求头。

第三步:启用配置并重启

Ubuntu需要创建软链接到 sites-enabled

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

测试配置是否有语法错误:

sudo nginx -t

如果输出 syntax is okaytest is successful,就重启Nginx:

sudo systemctl restart nginx

避坑指南:新手常见问题

Q1:502 Bad Gateway

  • 原因:后端服务未启动或端口错误。
  • 解决:检查后端进程是否运行,确认 proxy_pass 中的IP和端口正确。

Q2:配置修改后不生效

  • 原因:忘记重启Nginx或启用了错误的配置文件。
  • 解决:执行 sudo systemctl reload nginx 通过热重载生效,并再次运行 nginx -t 检查。

Q3:静态文件无法加载

  • 如果后端是Web应用,需要额外添加静态文件处理。反向代理默认转发所有请求,但你可以用 root 指令指定静态资源目录。如果只是纯API反向代理,忽略此条。

Q4:域名无法访问

  • 检查域名DNS解析是否指向服务器IP,以及服务器防火墙是否开放80端口:
sudo ufw allow 80/tcp    # Ubuntu
sudo firewall-cmd --add-service=http --permanent   # CentOS
sudo firewall-cmd --reload

效果验证:确认反向代理正常工作

  1. 浏览器访问:在地址栏输入 http://yourdomain.com,如果看到后端应用的内容(而不是Nginx欢迎页),说明反向代理成功。
  2. 命令行验证:在服务器或本地执行:
curl -I http://yourdomain.com

查看响应头中的 Server 字段,如果返回后端服务相关信息,说明流量已经透传。

  1. 查看日志
sudo tail -f /var/log/nginx/access.log

访问一次,你会看到请求来源IP等记录,确认是Nginx在代理。

总结

本文从零基础出发,讲解了Nginx反向代理的配置流程:安装Nginx、编写代理规则、处理常见错误并验证效果。
如果你正在处理Nginx反向代理,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
掌握这个技能后,你就能轻松管理多个后端服务了。

分享到:
上一篇
Nginx配置优化:零基础也能轻松提升网站性能
下一篇
Nginx负载均衡从零开始配置教程
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意