【.net core】yisha框架使用nginx代理swagger接口无法访问问题
后端代码配置
#在StartUp.cs文件中Configure方法中增加以下代码
app.UseSwagger(c =>{//代理路径访问c.PreSerializeFilters.Add((doc, item) =>{//根据代理服务器提供的协议、地址和路由,生成api文档服务地址doc.Servers = new List<OpenApiServer>{
new OpenApiServer{//此处等同于设置接口访问路径前缀//以192.168.1.33:5001/User/Login接口为例,以下代码生成内容为//http://192.168.1.33:50001/oaapi/User/Login//item.Scheme表示协议类型//item.Host.Value表示IP地址/域名//item.Headers["X-Forwarded-Port"]为nginx中配置的proxy_set_header X-Forwarded-Port $server_port内容//item.Headers["X-Forwarded-Prefix"]为nginx中配置的proxy_set_header X-Forwarded-Prefix oaapi内容//如果nginx配置的请求头中存在X-Forwarded-Port,则增加X-Forwarded-Port端口内容,否则则不增加//如果nginx配置的请求头中存在X-Forwarded-Prefix,则增加X-Forwarded-Prefix虚拟路径内容,否则则不增加Url = @$"{item.Scheme}://{item.Host.Value}{(string.IsNullOrEmpty(item.Headers["X-Forwarded-Port"].ToString() ) ? "":":" + item.Headers["X-Forwarded-Port"])}{ (string.IsNullOrEmpty(item.Headers["X-Forwarded-Prefix"].ToString()) ? "" : "/" + item.Headers["X-Forwarded-Prefix"])}"}};});//固定路径访问//c.RouteTemplate = "api-doc/{documentName}/swagger.json";});app.UseSwaggerUI(c =>{//代理路径访问c.ShowExtensions();c.ValidatorUrl(null);//GlobalContext.SystemConfig.VirtualDirectory为appsettings中设置的VirtualDirectory内容,如无代理则设置改字段为空c.SwaggerEndpoint($"{GlobalContext.SystemConfig.VirtualDirectory}/swagger/{"v1"}/swagger.json", "和田玖信OA办公系统 Api v1");c.RoutePrefix = string.Empty;c.DocExpansion(DocExpansion.None);//固定路径访问//c.RoutePrefix = "api-doc";//c.SwaggerEndpoint("swagger/v1/swagger.json", "和田玖信OA办公系统 Api v1");});
Nginx配置
#nginx代理设置
server {listen 50001;#代理后访问端口server_name 192.168.1.33;#服务器地址(IP/域名)location /oaapi/ {proxy_pass http://192.168.1.33:5001/;#需要代理的地址#配置代理header(请求头)内容proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection keep-alive;proxy_set_header Host $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Port $server_port;proxy_cache_bypass $http_upgrade;proxy_set_header X-Forwarded-Prefix oaapi; #------其中oaapi可以更换任何路由,即为代理路径内容proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}}
相关文章:
【.net core】yisha框架使用nginx代理swagger接口无法访问问题
后端代码配置 #在StartUp.cs文件中Configure方法中增加以下代码 app.UseSwagger(c >{//代理路径访问c.PreSerializeFilters.Add((doc, item) >{//根据代理服务器提供的协议、地址和路由,生成api文档服务地址doc.Servers new List<OpenApiServer>{ new…...
uniapp录音功能和音频播放功能制作
录音功能 在 UniApp 中,你可以使用 uni.getRecorderManager() 方法来创建一个录音管理器实例,从而实现录音功能。 以下是一个示例,演示了如何在 UniApp 中使用 uni.getRecorderManager() 实现录音功能: // 在需要录音的页面或组…...
服务器数据恢复-LINUX操作系统下各文件系统误删除/格式化数据的恢复方案
服务器数据恢复环境: 基于EXT2/EXT3/EXT4/Reiserfs/Xfs文件系统的Linux操作系统。 服务器故障: LINUX操作系统下误删除/格式化数据。 服务器数据恢复过程: 1、首先会检测服务器是否存在硬件故障,如果检测出硬件故障,交…...
python/C++二分查找库函数(lower_bound() 、upper_bound,bisect_left,bisect_right)
二分查找是一种经典的搜索算法,广泛应用于有序数据集中。它允许在大型数据集中高效地查找目标元素,减少了搜索的时间复杂度。本文将介绍在 C 和 Python 中内置的二分查找函数,让二分查找变得更加容易。 c lower_bound() 、upper_bound 定义…...
爬虫 — App 爬虫(二)
目录 一、Appium介绍二、node.js 安装三、Java 的 SDK 安装以及配置1、安装步骤2、配置环境变量 四、安卓环境的配置1、配置环境变量 五、Appium 安装1、安装2、打开 APP3、使用 六、Appium 使用1、定位数据(方法一,不常用)2、定位数据&#…...
汽车电子相关术语
SOA SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。是由Garnter1996年提出的概念,将应用程序的不同功能单元(称为服务)进行拆分…...
Python 找出最大数
"""在输入的三个数中找出最大知识点:1、条件嵌套语句if/else2.字符串分割函数split()3、列表元素索引4、数据类型转换举一反三:1、如何控制只能输入三个数,否则重新输入2、如何避免输入无效字母"""# 定义一个变…...
Spring Security 用了那么久,你对它有整体把控吗?
文章目录 1.Servlet Filter:守门人的角色2.DelegatingFilterProxy:桥接 Servlet 和 Spring 的神器3.FilterChainProxy:Spring Security 过滤器链的管家3.SecurityFilterChain:Security 过滤器的串绳4.Spring Security 中的过滤器机…...
vue+minio实现文件上传操作
vueminio实现文件上传操作 minio文件上传vueminio实现文件上传操作 minio文件上传 minio文件上传有两种方法: 第一种是通过ak,sk,调用minio的sdk putObject进行文件上传;该方法支持go,java,js等各种语言&…...
使用JavaScript实现无限滚动的方法
前言 在网页设计中,无限滚动是一种常见的交互方式,用户可持续地加载更多内容而无需刷新页面,提高用户体验。本文将介绍如何运用JavaScript实现无限滚动的效果,使网页能够自动加载更多数据,减轻用户加载新页的负担&…...
html学习综合案例1
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>个人简介</title> </head> <body>…...
神经节苷脂抗体——博迈伦
神经节苷脂抗体是指人体免疫系统中产生的一类抗体,其主要作用是攻击神经节苷脂抗原物质。神经节苷脂是一种存在于神经细胞表面的重要分子,参与了神经细胞间的信号传导和细胞黏附等重要功能。正常情况下,人体免疫系统不会对神经节苷脂产生抗体…...
【Unity】简单的深度虚化shader
【Unity】简单的深度虚化shader 实现效果 可以用于对地图场景边界的白模处理 实现方法 1.关键方法 UnityObjectToClipPos:将物体坐标转换为屏幕坐标 LinearEyeDepth:将屏幕坐标中的z值转换为实际的深度值 saturate:将值规范到0~1之间&a…...
启动 React APP 后经历了哪些过程
本文作者为 360 奇舞团前端开发工程师 前言 本文中使用的React版本为18,在摘取代码的过程中删减了部分代码,具体以源代码为准。 在React 18里,通过ReactDOM.createRoot创建根节点。并且通过调用原型链上的render来渲染。 本文主要是从以下两个…...
带自动采集小说网站源码 小说听书网站源码 小说网站源码 带教程
PTCMS可听书可下载的小说站源码 带自动采集和搭建视频教程 必装环境:Nginx(apache.iis也可),mysql,php5.6,memcached php5.6安装扩展memcache新建站点,注意新建时,PHP版本必须选择PHP5.6 安装教程 1.上传网站文件到网站目录&…...
MySQL学习笔记2
MySQL glibc版本安装: 下载相应的安装包。 学会查看mysql的官方文档: 1) 2)点击“Reference Manual”按钮: 3)选择5.7版本: 4)点击Installing MySQL on Unix/Linux Using Generic …...
【python爬虫】—星巴克产品
文章目录 需求爬取星巴克产品以及图片,星巴克菜单 python爬虫爬取结果 需求 爬取星巴克产品以及图片,星巴克菜单 网页分析: 首先,需要分析星巴克官方网站的结构,了解菜单栏的位置、布局以及菜单项的标签或类名等信息…...
算法 矩阵最长递增路径-(递归回溯+动态规划)
牛客网: BM61 求矩阵的最长递增路径 解题思路: 1. 遍历二维矩阵每个位置,max求出所有位置分别为终点时的最长路径 2. 求某个位置为终点的最长路径时,使用动态规划dp对已经计算出的位置进行记录 3. 处理某个位置的最长路径时,如果dp[i][j]位…...
四、数学建模之图与网络模型
1.定义 2.例题及软件代码求解 一、定义 1.图和网络是相关概念 (1)图(Graph):图是数学和计算机科学中的一个抽象概念,它由一组节点(顶点)和连接这些节点的边组成。图可以是有向的&…...
php在header增加key,sign,timestamp,实现鉴权
在PHP中,您可以通过在HTTP请求的Header中增加Key、Sign和Timestamp等信息来进行安全性鉴权。 以下是一种基本的思路和示例,用于说明如何实现这种鉴权机制: 生成Key和Sign: 服务端和客户端之间共享一个密钥(Key&#x…...
用Neural Renderer和PyTorch搞定3D车辆模型渲染:从.obj文件到Carla数据集实战
3D车辆模型渲染实战:Neural Renderer与Carla数据集深度整合指南 在自动驾驶和计算机视觉领域,逼真的3D车辆模型渲染技术正成为算法开发和测试的关键环节。传统渲染方法往往难以平衡效率与真实感,而基于神经网络的渲染技术为解决这一难题提供了…...
如何快速掌握Monaco Editor代码模板变量默认值导入的完整指南
如何快速掌握Monaco Editor代码模板变量默认值导入的完整指南 【免费下载链接】monaco-editor A browser based code editor 项目地址: https://gitcode.com/gh_mirrors/mo/monaco-editor 想要在Web应用中实现像VS Code一样强大的代码编辑器体验吗?Monaco Ed…...
AndEngine纹理打包优化:使用TexturePackerExtension提升游戏性能
AndEngine纹理打包优化:使用TexturePackerExtension提升游戏性能 【免费下载链接】AndEngine Free Android 2D OpenGL Game Engine 项目地址: https://gitcode.com/gh_mirrors/an/AndEngine 在Android游戏开发中,纹理管理是影响游戏性能的关键因素…...
dynamic-datasource启动优化:JAR包瘦身终极指南
dynamic-datasource启动优化:JAR包瘦身终极指南 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-datasource dynamic-dat…...
三步搞定全网资源下载:手把手教你使用res-downloader网络资源嗅探工具
三步搞定全网资源下载:手把手教你使用res-downloader网络资源嗅探工具 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: http…...
Raspotify多用户环境配置终极指南:在家庭网络中共享Spotify音乐服务
Raspotify多用户环境配置终极指南:在家庭网络中共享Spotify音乐服务 【免费下载链接】raspotify A Spotify Connect client that mostly Just Works™ 项目地址: https://gitcode.com/gh_mirrors/ra/raspotify 想要在家庭网络中打造一个完美的音乐共享系统吗…...
如何永久保存微信聊天记录:WeChatExporter完整解决方案
如何永久保存微信聊天记录:WeChatExporter完整解决方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机丢失、系统升级或误操作而丢失珍贵的微…...
OpenLiteSpeed实战踩坑记录:为什么我最终回归了LNMP环境?
OpenLiteSpeed实战反思:为什么复杂WordPress环境更适合LNMP? 最近在技术社区里,OpenLiteSpeed被频繁提及,尤其是它宣称的高性能PHP处理能力吸引了不少WordPress站长的注意。作为一个长期使用LNMP环境的开发者,我也被这…...
SDXL-Turbo多场景落地教程:覆盖电商、游戏、教育、自媒体的6大用法
SDXL-Turbo多场景落地教程:覆盖电商、游戏、教育、自媒体的6大用法 1. 认识SDXL-Turbo:重新定义AI绘画体验 SDXL-Turbo不是传统的AI绘画工具,而是一个革命性的实时创作伙伴。想象一下,你打字的同时,画面就在眼前实时…...
别再只盯着代码了!手把手教你读懂Cartographer的PGM和YAML地图文件(附Notepad++实操)
从二进制到坐标系:Cartographer地图文件深度解析与实战调参指南 当你第一次打开Cartographer生成的.pgm和.yaml文件时,是否感觉像在解读某种外星密码?那些数字和参数背后,藏着机器人如何理解世界的秘密。本文将带你像侦探一样拆解…...
