Visual
部署到 Linux
ASP.NET Core 2.x 内置两种 server:
- HTTP.sys 只支持 Windows,并支持一些 Windows 独有的特性
- Kestrel,跨平台的服务器,高度优化(推荐)
如何部署 ASP.NET Core 应用
- 直接服务应用(又叫做边缘服务器 Edge Server)
- 放在负载均衡或反向代理(Reverse Proxy)后边(推荐)
Edge Server:
放在 Reverse Proxy 后边:
HTTPS
带着的主要是这几个 Header:
为了带 Header,需要修改 Startup 类的Configure 方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger<Startup> logger)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
if (env.IsProduction())
{
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
}
...
}
部署的方式
- 把发布好的文件复制到服务器上
- 在服务器上编译源码
Nginx
Docs:Host ASP.NET Core on Linux with Nginx
Nginx 的安装:Nginx: Official Debian/Ubuntu packages
Nginx 的配置:Configure Nginx
Monitor
继续参考官方教程,监控网站,一旦出问题就重启。
HTTPS
前往 certbot 申请免费的 HTTPS 证书