asp.net core项目部署全新阿里云服务器IIS

简述

记录一下,第一次使用阿里云平台,之前是使用微软云,项目是.net 5的项目,涉及三个系统:工作台、SSO、系统管理,使用了阿里云的ECS Windows服务器,RDS,OSS,Redis,SLB

服务器配置

  1. 通过服务器管理器安装IIS,流程不写了,百度一下;
  2. 安装.net 5的运行时和SDK,下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet,根据自己使用的版本下载,标红框的是需要下载安装的,根据需要下载64或者86(86就是32);在这里插入图片描述

项目发布并把文件搬到服务器

  1. 项目发布;
    在这里插入图片描述
  2. 复制文件到服务器:可使用服务器上的workbench,我感觉不太好用,没有进度条,文件容易损坏,我是上传文件到OSS,然后分享链接下载,速度更快;在这里插入图片描述

部署到IIS

  1. 新建网站,选择一下文件路径,因为使用的SLB解析域名,所以在服务器上不绑定证书,是http协议;
    在这里插入图片描述
  2. CLR设置为无托管;
    在这里插入图片描述

域名解析并转发到服务器

  1. 创建虚拟服务器组;在这里插入图片描述

  2. 创建监听(因为我这个端口已经创建过了,所以报红);在这里插入图片描述

  3. 创建http重定向到https的监听;在这里插入图片描述

  4. 创建https:443的监听,在这个监听上配置转发,选择对应的虚拟服务器组;
    在这里插入图片描述
    在这里插入图片描述

  5. 遇到的一些问题(资源配置:两个环境给了两台服务器,一个SLB):
    因为两个环境的站点都是一样的,尽量端口不要一致,因为一台LB的监听的端口号是唯一的。
    如果调用域名http://test3.com:8013/api/login这样带端口的话,一定要增加对8013的监听,不然会报错。

遇到的一些问题解决

  1. 因为IIS上没有绑定证书,是http协议,如果在服务器中多个系统之间通过域名调用,会有https变成http的可能,所以要在SLB监听里加一个80转443的重定向;
  2. 因为SSO认证使用的是OIDC,遇到了重定向地址变成了http,找了好久,解决方法就是在SLB的转发中增加X-Forwarded-Proto真实协议的传递,然后在中间件中接收X-Forwarded-Proto传递的值来决定是否使用https
public static IApplicationBuilder UseCkeckConfigHttps(this IApplicationBuilder app)
{
    var requireHttps = true;

    var forwardedProtoHeaderName = "X-Forwarded-Proto";

    //修复应用机上Discovery url(.well-known/openid-configuration)为IIS绑定的http,非转发过来的https请求的问题
    var forwardOptions = new ForwardedHeadersOptions
    {
        ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost,
        RequireHeaderSymmetry = false,
        ForwardedProtoHeaderName = forwardedProtoHeaderName
    };

    forwardOptions.KnownNetworks.Clear();
    forwardOptions.KnownProxies.Clear();


    app.UseForwardedHeaders(forwardOptions);

    if (requireHttps)
    {
        app.UseHsts();

        app.UseHttpsRedirection();
    }
    else
    {
        app.UseCookiePolicy();
    }
    return app;
}

上面两个问题的具体原因,可以看这篇文章:https://blog.csdn.net/weixin_40803011/article/details/121560609
3.如果有别的报错,看看事件查看器和检查log,欢迎评论区讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值