在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

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

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

    在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

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

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

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

          在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

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

          dotnet run

          在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

 3.在浏览器中查看效果

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

          在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

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

          在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

          

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

          在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

 6.发布项目

          dotnet publish --configuration Release

          

    

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

   1.安装Apache

          yum install httpd      

          在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

  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

           在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

  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

            在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

  5.启动服务和apache服务  

      systemctl start kestrel-Test.service

      systemctl start httpd

                    在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

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

  脱坑指南

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

  

上一篇:javascript中with语句应用


下一篇:day5模块学习--yaml文件处理