源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-05-26 01:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET Core程序发布到Linux生产环境详解
在这篇文章里我们将介绍如何在 Ubuntu 14.04 Server上部署ASP.NET Core应用程序。我们将把ASP.NET Core应用程序放到一个反向代理服务器的后面,由代理服务器把请求转交给我们的Kestrel服务器。除此之外,我们还将保证我们的web应用程序作为一个守护进程来进行启动。我们需要配置一个进程管理工具来帮助我们在程序崩溃时恢复程序,以保证高可用性。 [b]章节:[/b] [list] [*]准备[/*] [*]复制你的应用程序[/*] [*]配置一个反向代理服务器[/*] [*]监控我们的应用程序[/*] [*]启动我们的应用程序[/*] [*]观察日志[/*] [*]使我们的应用程序安全化 [/*] [/list] [b]准备工作[/b] 1、使用一个具体有sudo权限的标准帐号访问Ubuntu 14.04 Server; 2、ASP.NET Core应用程序。 [b]复制你的应用程序[/b] 运行[b]dotnet publish[/b]把你的ASP.NET Core应用程序打包成一个自包含(Self-Contained)的目录(publish目录,这个目录下的程序将被上传到服务器上并运行)。什么是自包含(Self-Contained)程序,请参考我的这篇文章: [url=http://www.1sucai.cn/article/110683.htm] .NET Core应用类型(Portable apps & Self-contained apps)[/url] 。在操作之前,通过FTP工具(WinSCP等)把publish目录下的程序全部上传到服务器指定的目录下。接下来我们运行我们的程序,具体怎么运行程序请参考这篇文章:[url=http://www.1sucai.cn/article/110684.htm]使用.NET Core 1.0创建一个Self-Contained控制台应用[/url]。 [b]配置一个反向代理服务器[/b]  对于动态web应用来说,反向代理是一个非常常用的设置。反向代理会终止当前的请求并把请求转交给后端的ASP.NET Core应用程序。 [b]为什么要使用反向代理服务器[/b] Kestrel作为一个web服务器,在处理动态内容方面是非常优秀的,但它并不像那些成熟的web服务器一样功能完备,这些服务器包括: IIS, Apache or Nginx。反向代理服务器可以把一些工作从Http服务器上卸掉,这些工作包括:静态内容处理、缓存、压缩以及SSL等。反向代理服务器可以部署在一个专用的服务器上或者和Http服务器在同一个集群里。本例中我们将使用Nginx作为反向代理服务器并和Http服务器部署在同一个机器上。 [b]安装代理服务器[/b] sudo apt-get install nginx 安装Nginx sudo service nginx start 启动Nginx [b]配置Nginx[/b] 编辑文件:/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 [b]监控我们的web应用[/b]  Nginx将转发请求给你的Kestrel服务器,[b]但Kestrel并不像Windows上的IIS,它并不管理你的Kestrel进程[/b],在这篇文章中我们将使用supervisor来启动我们的应用程序,当系统启动的时候或者当进程崩溃时进行自我恢复。 安装supervisor: sudo apt-get install supervisor 配置supervisor: /etc/supervisor/conf.d/hellomvc.conf (新增的一个文件)
[program:hellomvc]
command=/usr/bin/dotnet /var/aspnetcore/HelloMVC/HelloMVC.dll
directory=/var/aspnetcore/HelloMVC/
autostart=true
autorestart=true
stderr_logfile=/var/log/hellomvc.err.log
stdout_logfile=/var/log/hellomvc.out.log
environment=ASPNETCORE__ENVIRONMENT=Production
user=www-data
stopsignal=INT
重启supervisord
sudo service supervisor stop
sudo service supervisor start
[b]启动我们的web应用程序[/b] 在这个案例中因为我们使用了supervisor来管理我们的应用,应用将会被supervisor自动开启。当操作系统启动的时候,supervisor作为守护进程使用一个System V的初始化脚本来启动,supervisor启动后紧接着会启动你的应用程序。 [b]观察日志[/b] supervisord日志 sudo tail -f /var/log/supervisor/supervisord.log 我们自己应用的日志 tail -f /var/log/hellomvc.out.log 原文翻译:[url=https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction#start-our-web-application-on-startup]Publish to a Linux Production Environment[/url] 作者:Sourabh Shirhatti 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部