ASP.NET Core程序发布到Linux生产环境详解


本文摘自PHP中文网,作者Y2J,侵删。

这篇文章主要为大家详细介绍了ASP.NET Core程序发布到Linux生产环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

在这篇文章里我们将介绍如何在 Ubuntu 14.04 Server上部署ASP.NET Core应用程序。我们将把ASP.NET Core应用程序放到一个反向代理服务器的后面,由代理服务器把请求转交给我们的Kestrel服务器。除此之外,我们还将保证我们的web应用程序作为一个守护进程来进行启动。我们需要配置一个进程管理工具来帮助我们在程序崩溃时恢复程序,以保证高可用性。

章节:

  • 准备

  • 复制你的应用程序

  • 配置一个反向代理服务器

  • 监控我们的应用程序

  • 启动我们的应用程序

  • 观察日志

  • 使我们的应用程序安全化

准备工作

1、使用一个具体有sudo权限的标准帐号访问Ubuntu 14.04 Server;

2、ASP.NET Core应用程序。

复制你的应用程序

运行dotnet publish把你的ASP.NET Core应用程序打包成一个自包含(Self-Contained)的目录(publish目录,这个目录下的程序将被上传到服务器上并运行)。什么是自包含(Self-Contained)程序,请参考我的这篇文章:

.NET Core应用类型(Portable apps & Self-contained apps) 。在操作之前,通过FTP工具(WinSCP等)把publish目录下的程序全部上传到服务器指定的目录下。接下来我们运行我们的程序,具体怎么运行程序请参考这篇文章:使用.NET Core 1.0创建一个Self-Contained控制台应用。

配置一个反向代理服务器

对于动态web应用来说,反向代理是一个非常常用的设置。反向代理会终止当前的请求并把请求转交给后端的ASP.NET Core应用程序。

为什么要使用反向代理服务器

Kestrel作为一个web服务器,在处理动态内容方面是非常优秀的,但它并不像那些成熟的web服务器一样功能完备,这些服务器包括: IIS, Apache or Nginx。反向代理服务器可以把一些工作从Http服务器上卸掉,这些工作包括:静态内容处理、缓存、压缩以及SSL等。反向代理服务器可以部署在一个专用的服务器上或者和Http服务器在同一个集群里。本例中我们将使用Nginx作为反向代理服务器并和Http服务器部署在同一个机器上。

安装代理服务器

sudo apt-get install nginx

安装Nginx

sudo service nginx start

启动Nginx

配置Nginx

编辑文件:/etc/nginx/sites-available/default为如下:


1

2

3

4

5

6

7

8

9

10

11

server {

 listen 80;

 location / {

  proxy_pass http://localhost:5000;

  proxy_http_version 1.1;

  proxy_set_header Upgrade $http_upgrade;

  proxy_set_header Connection keep-alive;

  proxy_set_header Host $host;

  proxy_cache_bypass $http_upgrade;

 }

}

监听在80端口,Http的默认端口;代理使用HTTP版本为:HTTP 1.1;把原始请求转交给:http://localhost:5000。

阅读剩余部分

相关阅读 >>

关于asp.net如何获取浏览器访问的ip地址?

asp.net mvc 中获取当前url、controller、action图文实例

理解asp.net中多层架构

使用action的模型绑定实例教程

关于asp.net core网站在docker中运行的详解

asp.net mvc 5改进了基于过滤器的身份验证

画图形验证码的asp代码实例

分享一个asp.net实现多个文件同时下载的方法

asp.net core新建项目教程(3)_实用技巧

asp.net与asp有什么不同

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...