前后端分离部署必备:Nginx 反向代理实战(静态资源 + API 接口分开代理)

张开发
2026/4/20 23:34:57 15 分钟阅读

分享文章

前后端分离部署必备:Nginx 反向代理实战(静态资源 + API 接口分开代理)
一、前言上一篇我们已经掌握了Nginx的核心配置,读懂了nginx.conf文件,还亲手搭建了第一个静态网站,完成了从“会安装”到“会使用”的跨越。本篇文章将进入Nginx最核心、企业最常用的功能——反向代理。这是打通前后端部署的关键,也是后续学习负载均衡、HTTPS的基础。很多新手对“反向代理”感到晦涩,其实不用怕,今天我们用大白话讲清原理,再用3个实战案例,手把手教你配置,全程复制即用,10分钟就能上手,看完就能独立完成前后端代理部署。读完这篇,你能掌握:用大白话搞懂:什么是反向代理,为什么企业必须用反向代理核心指令(proxy_pass)用法,一看就会3个企业级实战案例(静态+动态,直接复制配置)解决反向代理最常见的8个报错(404/502/跨域等)反向代理与静态网站的区别,避免混淆实战:用Nginx代理SpringBoot/Node.js后端服务提前说明:反向代理是Nginx的“灵魂功能”,不管是前后端分离项目、多服务部署,还是负载均衡,都离不开它。今天的内容,新手一定要跟着实战操作,记住核心指令,后续学习会事半功倍。二、什么是反向代理?很多新手被“代理”“正向”“反向”搞晕,其实用一个生活例子就能讲明白,不用记复杂定义:假设你去奶茶店买奶茶(你 = 客户端/浏览器),奶茶店的前台(Nginx)负责接待你,你不用直接去找后厨(后端服务,比如SpringBoot、Node.js),前台会把你的订单(请求)传给后厨,后厨做好奶茶(响应),再通过前台递给你。这里的前台(Nginx),就是「反向代理服务器」,核心作用:隐藏后端服务(后厨):你不知道后厨在哪、有多少人,只对接前台,保证后端安全;转发请求:你把订单给前台,前台转发给后厨,不用你直接找后厨;统一入口:不管有多少个后厨(多个后端服务),都通过一个前台(Nginx)对接,方便管理。用技术语言总结:反向代理是Nginx接收客户端的所有请求,再将请求转发到后端对应的服务,最后将后端的响应返回给客户端,客户端全程不知道后端服务的真实地址,所有交互都通过Nginx完成。对比上一篇的静态网站:静态网站是Nginx直接返回自己服务器上的文件(比如HTML、CSS);反向代理是Nginx不自己处理,而是转发请求给后端服务,让后端处理后再返回。三、反向代理核心指令反向代理的配置非常简单,核心只有一个指令——proxy_pass,作用是:指定后端服务的地址,告诉Nginx把请求转发到这个地址。核心语法location/需要代理的路径 { proxy_passhttp://后端服务地址:端口;# 核心指令,指定后端地址 }关键说明后端服务地址:可以是本地地址(127.0.0.1),也可以是远程地址(比如192.168.1.100);端口:后端服务的监听端口(比如SpringBoot默认8080,Node.js默认3000);proxy_pass后面的地址,末尾不要加/(除非有特殊需求),否则会导致路径匹配错误(新手最容易踩的坑);location后面的路径,根据需求配置,比如代理所有请求写 location /,代理接口写 location /api。补充指令只加proxy_pass虽然能实现代理,但会导致后端服务获取不到客户端的真实IP、请求头信息,建议加上以下3个指

更多文章