2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > ASP.NET Core程序发布到Linux生产环境详解

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

时间:2022-01-15 04:51:35

相关推荐

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

后端开发|C#.Net教程

,Core,Linux

后端开发-C#.Net教程

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

简单租房php源码,vscode安装固定e盘吗,ubuntu中 ant,查看tomcat部署路径,福利爬虫,php 语言结构 函数,seo埋词是什么意思,php门户网站模板lzw

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

abap 下载源码,vscode 收起所有,ubuntu hpool,tomcat线程并发,sqlite聚合字符串,jquery 广告插件,前端三大框架性能对比,怎么查爬虫程序代码,Php 上传 原理,东莞网站seo报价,自适应营销网站模板,vb 获取网页中的图片,网站模板信息不存在lzw

章节:

微信多用户商城源码,ubuntu网络调试命令,tomcat 开机启动输出日志,爬虫 所有链接,php最大上传,荥阳关键词seo排名优化lzw

准备

复制你的应用程序

配置一个反向代理服务器

监控我们的应用程序

启动我们的应用程序

观察日志

使我们的应用程序安全化

准备工作

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

2、 Core应用程序。

复制你的应用程序

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

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

配置一个反向代理服务器

对于动态web应用来说,反向代理是一个非常常用的设置。反向代理会终止当前的请求并把请求转交给后端的 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为如下:

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。

上述配置完成后使用如下命令来验证配置文件语法是否正确:

sudo nginx -t

如果配置语法没有问题,则重启Nginx以使配置生效:

sudo nginx -s reload

监控我们的web应用

Nginx将转发请求给你的Kestrel服务器,但Kestrel并不像Windows上的IIS,它并不管理你的Kestrel进程,在这篇文章中我们将使用supervisor来启动我们的应用程序,当系统启动的时候或者当进程崩溃时进行自我恢复。

安装supervisor:

sudo apt-get install supervisor

配置supervisor:

/etc/supervisor/conf.d/hellomvc.conf (新增的一个文件)

[program:hellomvc]command=/usr/bin/dotnet /var/aspnetcore/HelloMVC/HelloMVC.dlldirectory=/var/aspnetcore/HelloMVC/autostart=trueautorestart=truestderr_logfile=/var/log/hellomvc.err.logstdout_logfile=/var/log/hellomvc.out.logenvironment=ASPNETCOREENVIRONMENT=Productionuser=www-datastopsignal=INT

重启supervisord

sudo service supervisor stopsudo service supervisor start

启动我们的web应用程序

在这个案例中因为我们使用了supervisor来管理我们的应用,应用将会被supervisor自动开启。当操作系统启动的时候,supervisor作为守护进程使用一个System V的初始化脚本来启动,supervisor启动后紧接着会启动你的应用程序。

观察日志

supervisord日志

sudo tail -f /var/log/supervisor/supervisord.log

我们自己应用的日志

tail -f /var/log/hellomvc.out.log

原文翻译:Publish to a Linux Production Environment

作者:Sourabh Shirhatti

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。