Asp.Net core下Swagger适配二级目录及Nginx SSL证书配置

一、背景

  当前,前后端分离以及微服务化已经是趋势。因此,后端通常会有多个webapi应用。为访问多个应用,可以采用多个域名/IP或者单个域名/IP加不同端口的方式。但通常域名或者IP有限,而不同端口要采用非80/443等默认端口,也会导致不便。因此,单域名/IP+默认端口+二级目录就成为一种比较友好和方便的方式。

二、环境

  1. asp.net core 3.1 (3.1.8)
  2. CentOS 8.2
  3. nginx/1.14.1
  4. Swashbuckle.AspNetCore 5.5.1

三、实现方式

1.Nginx配置

直接上Nginx.conf配置:

    server {
   
		# Nginx服务的Banner隐藏状态
		server_tokens off; 
				
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        
        # 反向代理webapi应用
        location /sms/ {
        	# 注意"localhost:8080"后面的"/"
			proxy_pass http://localhost:8080/;
		}		
        # 其他路径默认访问网站

        # 错误页
        error_page 404 /404.html;
        location = /40x.html {}

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {}
    }

2.Swagger相关代码和配置调整

2.1 Swagger的问题

按照上述方式,能正常访问应用。但Swagger里却可能无法正常运行。
可以看到,在swagger中已经有了二级目录/sms/:
swagger正常
但在swagger中执行时,没有包括二级目录:
swagger错误信息

2.2 Swagger相关代码和配置调整

重点是Swagger的Json文件以及API路径需要增加二级目录位置

string vPath = Configuration["virtualPath"];
// 添加Swagger有关中间件
app.UseSwagger(c =>
{
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值