Visual

MVC 09 - 部署到Ubuntu, Nginx, 监控, HTTPS和证书.mp4 (134.28MB)

部署到 Linux

ASP.NET Core 2.x 内置两种 server:

  • HTTP.sys 只支持 Windows,并支持一些 Windows 独有的特性
  • Kestrel,跨平台的服务器,高度优化(推荐

如何部署 ASP.NET Core 应用

  • 直接服务应用(又叫做边缘服务器 Edge Server)
  • 放在负载均衡或反向代理(Reverse Proxy)后边(推荐

Edge Server:
image.png

放在 Reverse Proxy 后边:
image.png

HTTPS

image.png

带着的主要是这几个 Header:
image.png

为了带 Header,需要修改 Startup 类的Configure 方法:

  1. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger<Startup> logger)
  2. {
  3. if (env.IsDevelopment())
  4. {
  5. app.UseDeveloperExceptionPage();
  6. }
  7. if (env.IsProduction())
  8. {
  9. app.UseForwardedHeaders(new ForwardedHeadersOptions
  10. {
  11. ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
  12. });
  13. }
  14. ...
  15. }

部署的方式

  • 把发布好的文件复制到服务器上
  • 在服务器上编译源码

Nginx

Docs:Host ASP.NET Core on Linux with Nginx
Nginx 的安装:Nginx: Official Debian/Ubuntu packages
Nginx 的配置:Configure Nginx

Monitor

继续参考官方教程,监控网站,一旦出问题就重启。

HTTPS

前往 certbot 申请免费的 HTTPS 证书