这一篇实例记录一次用Centos7创建并部署.net core项目的过程,希望能帮到用到的小伙伴。

  Kestrel 是 ASP.NET Core 项目模板中包括的默认 Web 服务器,Kestrel可以用作边缘服务器,同时Kestrel也可以做反向代理配置

    

一.创建并运行.net core MVC项目

  1.用命令创建一个.net core MVC项目(前提是安装了.net core SDK)

          dotnet new mvc -n "Test"       (-n参数是指定项目的名称)

          

 2.进入项目并运行(必须要先进入创建的项目再执行命令)

          dotnet run

          

 3.在浏览器中查看效果

          这个错误主要是https的安全证书问题,再这里我们先简单的修改项目的配置,使其正常的跑起来。

          

  4.修改项目中Properties下面的launchSettings.json文件

          

          

 5.重新运行项目就可以正常打开了

          

 6.发布项目

          dotnet publish --configuration Release

          

    

二.使用 Apache 在 Linux 上托管 ASP.NET Core

   1.安装Apache

          yum install httpd      

          

  2.配置 Apache

          Apache 的配置文件位于 /etc/httpd/conf.d/ 目录内。 除了 /etc/httpd/conf.modules.d/ 中的模块配置文件外(其中包含加载模块所需的任何配置文件),将对任何带 .conf 扩展名的文件按字母顺序进行处理。

          在/etc/httpd/conf.d/目录下为应用创建名为 Test.conf 的配置文件,配置如下:

        

            <VirtualHost *:*>
             RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
            </VirtualHost>
            <VirtualHost *:>
             ProxyPreserveHost On
             ProxyPass / http://127.0.0.1:5000/
             ProxyPassReverse / http://127.0.0.1:5000/
             ServerName www.example.com
            ServerAlias *.example.com
             ErrorLog ${APACHE_LOG_DIR}helloapp-error.log
             CustomLog ${APACHE_LOG_DIR}helloapp-access.log common
            </VirtualHost>

           

  3.保存文件并测试配置

           sudo service httpd configtest

           

  4.为项目创建一个服务文件

           vim /etc/systemd/system/kestrel-Test.service

            配置内容如下:

                

                [Unit]
                Description=Example .NET Web API App running on CentOS 7
                [Service]
                WorkingDirectory=/var/dotnet/Test
                ExecStart=/usr/bin/dotnet /var/dotnet/Test/bin/Release/netcoreapp2./Test.dll
                Restart=always
                RestartSec=
                KillSignal=SIGINT
                SyslogIdentifier=dotnet-example
                User=apache
                Environment=ASPNETCORE_ENVIRONMENT=Production
                [Install]                 WantedBy=multi-user.target

            

  5.启动服务和apache服务  

      systemctl start kestrel-Test.service

      systemctl start httpd

                    

            此时访问本地的80端口就会发现已经转发到.net core项目上了  

  脱坑指南

       当配置完/etc/conf.d/Test.conf时,发现apache起不来了。这时请检查你的SELinux是否开着,开着的话关闭,重启服务就好了

  

在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目的更多相关文章

  1. 在Window的IIS中创建FTP的Site并用C#进行文件的上传下载

    文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服务器计算机上. 然后,远程计算机可以使用 FTP ...

  2. ASP.NET Core学习之四 在CentOS上部署.net core

    一.安装CentOs 以前在大学学过linux,但是对命令行总是有一种深深的排斥感,几年之后,还是又回来了. 1.下载 现在没法FQ,就算是FQ网速也是蜗牛一样慢,我使用阿里云的镜像站进行下载速度还是 ...

  3. apache&mod_wsgi&django部署多个项目

    今天做好了第二个django项目,但在部署时出了一点小问题,在此记录一下. 1.mod_wsgi 3.4已经支持了部署多个项目,只需在httpd.conf中进行如下配置: WSGIScriptAlia ...

  4. CentOS7 中创建 Django 项目

    1. (新建文件夹用于存放项目)进入指定文件夹,创建Django项目 django-admin.py startproject mysite mysite 为项目名称 2. 进入项目文件夹,新建app ...

  5. SpringBoot项目 使用Jenkins进行自动化部署 (gitLab管理项目)_

    1.部署服务器创建好对应文件夹和启动脚本 创建文件夹 mkdir /wdcloud/app/rps/rps-module-category 创建启动脚本 cd /wdcloud/app/rps/rps ...

  6. 创建FTP的Site并用C#进行文件的上传下载

    创建FTP的Site并用C#进行文件的上传下载 文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服 ...

  7. centos7中使用yum安装tomcat以及它的启动、停止、重启

    centos7中使用yum安装tomcat 介绍 Apache Tomcat是用于提供Java应用程序的Web服务器和servlet容器. Tomcat是Apache Software Foundat ...

  8. 在Eclipse中创建Django项目

    在以前的分享中,我们是在命令行模式下创建Django项目的,那么,如何在IDE中使用Django呢? 本文将介绍如何在Eclipse中创建Django项目. 首先,新建Django项目mysite,如 ...

  9. EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型

    官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...

随机推荐

  1. 【Gamma】Scrum Meeting 4

    目录 写在前面 进度情况 任务进度表 Gamma阶段燃尽图 照片 写在前面 例会时间:5.31 22:30-23:00 例会地点:微信群语音通话 代码进度记录github在这里 临近期末,团队成员课程 ...

  2. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'TableName'中的标识列指定显式值

    当某表的一个列为自动增长列,是无法直接通过insert语句向给字段写入指定值,解决方法: SET IDENTITY_INSERT TABLE_NAME ON; INSERT INTO TABLE_NA ...

  3. SSL证书原理讲解

    一直以来都对数字证书的签发,以及信任等事情一知半解.总算有个闲适的周末来总结和深入一下相关的知识. CA: CA(Certificate Authority)是证书的签发机构,它是负责管理和签发证书的 ...

  4. (转) centos7 RPM包之rpm命令

    原文:https://blog.csdn.net/capecape/article/details/78529159 RPM包与源码包的区别1.软件包分类 源码包:C源代码包 rpm包:编译之后的二进 ...

  5. Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法

    转: Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法  更新时间:2018年02月14日 17:13:03   投稿:wdc   我要评论   Java开发中 ...

  6. JAVA 创建也项目平级文件

    String url = System.getProperty("user.dir") +"/logs/test.txt" File file = new Fi ...

  7. idel上传代码到github时遇到的Push rejected: Push to origin/master was rejected

    1 没有权限 2 先pull之后,再push即可

  8. 【Gitlab】宝塔gitlab 修改管理员账号密码

    步骤: a. 切换目录:cd /opt/gitlab/bin b.执行 :sudo gitlab-rails console production 命令 开始初始化密码 c.在 irb(main):0 ...

  9. 从原理到应用,Elasticsearch详解

    简介 Elasticsearch(简称ES)是一个分布式.可扩展.实时的搜索与数据分析引擎.ES不仅仅只是全文搜索,还支持结构化搜索.数据分析.复杂的语言处理.地理位置和对象间关联关系等. ES的底层 ...

  10. Golang 实现UDPServer并发送消息到ActiveMQ

    示例代码 package main import ( "net" "os" "github.com/gpmgo/gopm/modules/goconf ...