Nginx反向代理到访问者机器上(后端调试)

一、起因

因一名后端开发,不想使用postman等工具进行接口调试,因为web系统需要经过N多步骤的前置动作,不能保证参数的有效性,因此,需要直接点击web系统,触发本地后端代码。

但是,总不可能动不动就让前端给自己起一个项目吧,于是就用nginx进行部署前端项目,代理转发的形式,将接口转发到后端机器上。

因此有了关于这个配置的折腾。

二、配置

以下配置是用shell脚本生成的,需要参考脚本生成配置的,可以自己去翻下

配置内容,就以注释形式进行说明

rust 复制代码
# financeapi server配置 由脚本生成
server {
    listen 1001;
    
    ### 因为涉及到第三方的文件服务器,当特定的接口匹配时,转发到第三方文件服务器上
    ### 307的作用是:在转发过程中不改变原是请求的任何内容(请求方式、请求头、请求体等)
    location  /fronteapi/fs/uploadFile/ {
        return 307 http://10.10.10.10/fronteapi/fs/uploadFile/;
    }
	### 后端接口主要在这个路由里进行匹配
	
    location  /frontapi/ {
    	### 因为proxy_pass是自己拼接的,不是写死的字符串,因此在进行代理转发时,
    	### 会丢失请求参数,需要提前保存,最后拼在proxy_pass上
        if ($request_uri ~* "financeapi(/.*$)") {
            set  $path_remainder  $1;
        }
        ### 代理转发的主要配置,$remote_addr为nginx内置的变量,可表示访问者的IP,本文主题就是这个变量体现的
        
        proxy_pass http://$remote_addr:8079/$path_remainder;
        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_cookie_path / "/; HTTPOnly; SameSite=Lax; Max-Age=86400";
    }
	
	### 静态前端项目的根目录路径配置,相当于入口
    location / {
        root /home/docker/frontApp/front-web/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
        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_cookie_path / "/; HTTPOnly; SameSite=Lax; Max-Age=86400";
    }
	
	### 因为认证用的是3方认证服务,因此当如下路径触发时候,需要重写当前路径
    location = /auth/oauth2/authorize {
        rewrite ^  http://xxx/auth/oauth2/authorize;
    }
   
}
# financeapi server配置 生成成功
相关推荐
码农学院1 小时前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
大耳朵-小飞象10 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
生活爱好者!14 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
尽兴-15 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕16 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
壮哥_icon16 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
RD_daoyi16 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
电商API_1800790524717 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
张小姐的猫17 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式