赞
踩
因一名后端开发,不想使用postman等工具进行接口调试,因为web系统需要经过N多步骤的前置动作,不能保证参数的有效性,因此,需要直接点击web系统,触发本地后端代码。
但是,总不可能动不动就让前端给自己起一个项目吧,于是就用nginx进行部署前端项目,代理转发的形式,将接口转发到后端机器上。
因此有了关于这个配置的折腾。
以下配置是用shell脚本生成的,需要参考脚本生成配置的,可以自己去翻下
配置内容,就以注释形式进行说明
# 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配置 生成成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。