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
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意