zoukankan      html  css  js  c++  java
  • 在Linux环境下使用Apache部署ASP.NET Core

    在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Apache(阿帕奇)中。
        很幸运能够和大家一起学习和探讨ASP.NET Core

    本文章运行环境如下:




    (1)安装Apache web服务器

    运行命令行如下:

    sudo yum update -y   //更新仓库

    sudo yum -y install httpd mod_ssl   //安装Apache web服务器

    (2)新建一个空ASP.NET Core MVC 项目

    运行命令如下:

    cd /home    //定位到home目录下

    dotnet new mvc -o hellomvc

    接下来我们对空项目做一些变更以符合当前运行环境

       1️⃣  针对Program.cs类 BuildWebHost方法 添加指定端口运行




        
      2️⃣    在Startup.cs添加 Microsoft.AspNetCore.HttpOverrides命名空间,并在Configure方法中添加URL中间件






        
    调试当前项目运行是否正常

    运行命令如下:

    cd /home/hellomvc     //定位到指定目录

    dotnet run     //运行当前项目

    运行成功,效果如下:





    (3) 生成项目部署文件

    运行命令如下:

    mkdir -p /var/aspnetcore/hellomvc     //新建目录 hellomvc

    cd /home/hellomvc/     //定位到指定目录

    dotnet publish -o /var/aspnetcore/hellomvc     //生成部署文件

    因为是空的项目,所以我们把视图文件夹复制到部署目录中 

    目录结构如下:




    运行下面的命令测试发布的程序是否运行正常.
     
    dotnet /var/aspnetcore/hellomvc/hellomvc.dll





    (4) 修改Apache 网站配置文件

    运行如下命令

      cd /etc/httpd/conf.d/        //定位到指定目录

      touch hellomvc.conf      //新建名为hellomvc.conf的文件

      vi hellomvc.conf     //打开hellomvc.conf


    嗯 改成这样就可以了,.你不会不会抄吧......(我知道命令行很痛苦,所以我千辛万苦装了个图形界面)




    查看配置是否正常

    sudo service httpd configtest




    重新启动Apache

    sudo systemctl restart httpd

    sudo systemctl enable httpd



    OK,现在 Apache 已将位于 http://localhost:80 的请求转发至h ttp://127.0.0.1:7000


    (4) 设置 Kestrel 守护

    ASP.NET Core运行在Kestrel 上,我们使用systemd来启动和监视Kestrel 。

    创建服务定义文件

    sudo nano /etc/systemd/system/kestrel-hellomvc.service

    注意:   若提示  nano: command not found   则可能nano未安装
    执行  yum install nano 命令, 安装nano后再次执行创建服务定义
    文件命令.

    服务定义文件内容如下:







    保存该文件并启用该服务,然后验证它正在运行

    systemctl enable kestrel-hellomvc.service

    systemctl start kestrel-hellomvc.service

    systemctl status kestrel-hellomvc.service






    OK,让我们运行浏览器


  • 相关阅读:
    ajax 中$.each(json,function(index,item){ }); 中的2个参数表示什么意思?
    后台传list到前台,前台怎么解析,怎么将解析的数据填充到已经存在列名table中
    mybatis如何直接 执行传入的任意sql语句 并按照顺序取出查询的结果集
    虚拟机突然无法 联网,最简单及最可能的原因
    windows10,nodejs安装步骤
    Windows下Git与Node.js的安装
    Windows10下安装Git的详细教程
    django-admin.py startproject testdj 失败 没有工程文件夹
    在Pythonfor循环中如何获取循环次数?
    Pygal之世界地图绘制from pygal.i18n import COUNTRIES 报错的解决办法
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/8671228.html
Copyright © 2011-2022 走看看