要想在 Linux 上部署 ASP.NET CORE 网站,除了使用“宇内流云”大神的 Jexus 之外就是使用 Nginx 对 ASP.NET CORE 网站进行反向代理。

常规的做法是在服务器上部署完成 ASP.NET 运行环境、网站程序之后,使用 Supervisor 对网站程序进程进行守护。网站程序采用固定的端口号,之后在宝塔面板中创建网站并配置反向代理。

宝塔面板是一个不错的产品,为网站提供了一键申请免费 HTTPS 证书的功能。该功能会在网站根目录下生成一个名为 .well-known 的目录,证书的申请、续签均需要依赖该目录。

在配置完成反向代理之后,对 .well-known 目录的访问将会由 ASP.NET CORE 程序进行处理,这就会导致该目录下的文件访问不到了,于是自动申请 HTTPS 证书的功能也就失效了。

有两种方式可以解决该问题:

  1. 修改 Nginx 网站的配置,让对 .well-known 的请求不走反向代理。

  2. 修改 ASP.NET CORE 网站的设置,让其支持对 .well-known 目录下文件的访问。

经过几番折腾,修改 Nginx 网站配置的方式并没有走通,这完全是因为笔者在 Linux 上的造诣浅薄。不过,第二种方案的实现倒是非常容易。

笔者将 ASP.NET CORE 应用发布到了网站的根目录,这也就意味着 .well-known 目录和 wwwroot 目录是平级的。那么,我们仅需要增加一个静态文件中间件即可:

app.UseStaticFiles(new StaticFileOptions
{FileProvider = new PhysicalFileProvider($"{env.ContentRootPath}/.well-known"),RequestPath = "/.well-known",ServeUnknownFileTypes = true
});

以上代码需要在 Configure 方法中调用。其中 ServeUnknownFileTypes = true 代表:即使文件的 MIME 类型未知,也将其发送到客户端。该参数也可以用来解决部分静态文件因后缀过于小众而无法下载的问题。但要注意的是,这个设置会允许用户下载 FileProvider 提供的所有文件包括但不限于 dll 、exe、 db 等。开启此设置前需要小心谨慎。

如何在宝塔面板启用 ASP.NET CORE 网站并自动申请 HTTPS 证书相关推荐

  1. Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站

    点击上方蓝字关注"汪宇杰博客" 导语 微软智慧云 Azure 上虽然早就有 App Service 这种完全托管的 PaaS 服务可以让我们分分钟建网站.但是不自己配一下环境,就不 ...

  2. ASP.NET Core 网站运行时修改设置如何自动生效

    点击蓝字 关注我 在ASP.NET Core中,如果修改了appsettings.json中的设置,那么默认情况下就得重启网站才能生效.有没有办法在修改设置后自动刷新并应用呢? 背景 首先,我们看看默 ...

  3. 宝塔linux_宝塔面板建站基础教程:如何安装宝塔面板及建立博客网站

    大多数站长购买服务器特别是 Linux 服务器后一般都会选择安装宝塔面板来管理和维护服务器,但是有些新手站长总是担心自己不懂得如何在云服务器上安装宝塔面板,又或者成功安装了宝塔面板之后不懂得如何通过面 ...

  4. 编程方式重启 ASP.NET Core 网站

    点击上方蓝字关注"汪宇杰博客" 常言道,多喝热水,重启试试.有时候当应用工作不正常,重启也许能解决问题.但是程序员通常接触不到服务器系统权限.而运维人员和公司流程经常人为制造麻烦阻 ...

  5. ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...

  6. 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档

    Swagger是一个描述RESTful的Web API的规范和框架.如果使用ASP.NET的话,可以用Swashbuckle来自动生成Swagger,具体参考如何使 WebAPI 自动生成漂亮又实用在 ...

  7. ASP.NET Core 网站发布到Linux服务器

    长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...

  8. ASP.NET Core网站使用Nginx布署Linux上配置和发布及相关代码

    本文主要介绍使用ASP.NET Core开发的网站,运行布署在Linux上的方法,包括.NET Core SDK找安装,项目的发布和网站运行及开机自动启动及Nginx相关配置方法 . 原文地址:ASP ...

  9. 宝塔php扩展fil_宝塔面板安装Redis给WordPress网站加速优化教程

    宝塔面板php安装redis缓存以加快WordPress的开启速度,因为WordPress打开速度慢,所以霜天 seo使用多种方式来提高wordpress的加载速度,其中一个好办法是:使用redis加 ...

最新文章

  1. JAVA面试解析(有赞二面)
  2. 天锋w2019_不知道为什么那么多人喜欢三星W2019,直到入手这款天锋W2019手机
  3. js 手机端触发事事件、javascript手机端/移动端触发事件
  4. Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
  5. 计算机应用技术班级鉴定,大学班级的鉴定评语(精选50条)
  6. theos linux环境,theos安装详解
  7. 如何改变Myeclipse编辑区背景色(转)
  8. Java——数据结构之顺序表
  9. OOP思想--封装和继承
  10. 电路实验一阶电路误差分析_动态电路分析
  11. 中国科技网宽带接入服务
  12. Technical support of ZYC-Roll Book
  13. php转调页面,如何转调
  14. 接入以太坊(Ethereum)测试网络
  15. 浅谈分布式架构搭建-理论知识
  16. 黑马程序员前端培训:高效的前端编程入门训练方法
  17. 《Deep Learning Techniques for Music Generation – A Survey》深度学习用于音乐生成——书籍阅读笔记(一)Chapter 1
  18. 这些学校招收!!!应用统计学专硕(025200),你知道吗?
  19. Jupyter NoteBook 中使用 cv2.imshow 显示图片
  20. C语言-商品销售管理系统

热门文章

  1. VS2013配置pro*C/C++开发环境
  2. 本地工程提交github
  3. 电子商务时代企业统计的发展方向
  4. 真希望永远用不到这些代码
  5. 如何将10进制转成16进制,又如何将16进制数转成10进制,C#和VB代码?
  6. php 计算代码执行时间
  7. 1-3.监督学习(supervised learning)
  8. P2680 运输计划
  9. TensorFlow基本计算单元——变量
  10. tomcat学习笔记(JDK+TOMCAT+AXIS)