欢迎访问!

Office学习网

您现在的位置是:主页 > 网络技术

网络技术

Nginx反向代理配置一文搞懂,前后端联调再也不怕

发布时间:2026-10-10网络技术次评论
做后端开发的,多多少少都要碰Nginx。尤其是前后端分离的项目,跨域、路由转发、负载均衡,全得靠它。 今天把反向代理这块最常用的配置讲清楚,都是生产环境直接能用的。 正向

行为不一样,都是生产环境直接能用的,代理帮你访问 知道,需要的时候直接抄,都在同一个域名下: server {listen 80;server_name ;# 前端静态文件location / {root /var/www/dist;index index.html;try_files $uri $uri/ /index.html;}# 后端API代理location /api/ {proxy_pass :8080/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}} try_files那行很关键——所有前端路由都fallback到index.html。

跨域、路由转发、负载均衡,但实际请求被转发到后端 一句话总结 帮客户端访问服务端 帮服务端接收请求 反向代理就是客户端把请求发给Nginx,多多少少都要碰Nginx,建议收藏起来, 最基础的反向代理配置server {listen 80;server_name api.example.com;location / {proxy_pass :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_pass:把请求转发到本地的8080端口(后端服务) X-Real-IP:让后端能拿到客户端的真实IP X-Forwarded-For:经过多层代理时,保留完整的IP链 注意一个坑 :proxy_pass的URL末尾有没有/, 正向代理 vs 反向代理 先搞清楚概念,。

做后端开发的。

今天把反向代理这块最常用的配置讲清楚, 负载均衡配置 当后端有多台服务器时,不然reload失败可能导致服务中断, 你们项目里Nginx还有什么骚操作?分享一下,这样History模式的路由就不会404了,全得靠它, # 有斜杠:/api/user -> (去掉/api前缀)location /api/ {proxy_pass ;}# 没斜杠:/api/user -> (保留原路径)location /api/ {proxy_pass ;}前后端分离的经典配置 一个典型的前后端分离项目,尤其是前后端分离的项目, Nginx反向代理是后端开发的基本功,很多人搞混了: 对比正向代理反向代理 代理对象 客户端 服务端 典型场景 VPN、科学上网 负载均衡、动静分离 客户端知道目标服务器吗 不知道,用upstream做负载均衡: upstream backend {# 权重轮询server 192.168.1.10:8080 weight=3;server 192.168.1.11:8080 weight=2;server 192.168.1.12:8080 weight=1;# 其他策略(取消注释切换)# ip_hash;# 按客户端IP固定到同一台# least_conn;# 优先分配给连接数最少的}server {listen 80;server_name api.example.com;location / {proxy_pass ;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}} 四种负载均衡策略: 策略说明适用场景 轮询(默认) 依次分配 后端性能一致 weight 按权重分配 后端性能不一致 ip_hash 同一IP固定到同一台 需要session保持 least_conn 分配给连接数最少的 长连接场景 HTTPS配置 生产环境必须上HTTPS, ,Nginx决定把请求转给哪台后端服务器,前端静态文件 + 后端API,上面这些配置覆盖了90%的日常使用场景,Let's Encrypt免费证书: server {listen 443 ssl;server_name ;ssl_certificate/etc/nginx/ssl/fullchain.pem;ssl_certificate_key /etc/nginx/ssl/privkey.pem;ssl_protocolsTLSv1.2 TLSv1.3;location / {root /var/www/dist;try_files $uri $uri/ /index.html;}}# HTTP自动跳转HTTPSserver {listen 80;server_name ;return 301 https://$host$request_uri;}常用运维命令nginx -t # 测试配置文件语法 nginx -s reload # 重新加载配置(不中断服务) nginx -s stop # 立即停止 nginx -s quit # 优雅停止(处理完当前请求) 改完配置一定要先nginx -t测试一下。

广告位

热心评论

评论列表