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


    这一篇实例记录一次用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 *:80>
                    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.2/Test.dll                 Restart=always                 RestartSec=10                 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是否开着,开着的话关闭,重启服务就好了

      

  • 相关阅读:
    py 6.4
    py 5.31
    Java集合之LinkedHashMap常用方法解析
    Java集合之HashMap常用方法解析
    Java集合之LinkedList常用方法解析
    Java集合之ArrayList常用方法解析
    Java 基础知识
    Java wait和notifyAll的使用,简单的阻塞队列实现
    The main resource set specified [/tmp/tomcat-docbase.5063501203886177649.7000] is not valid
    zuul网关过滤器实现对GET请求的参数替换
  • 原文地址:https://www.cnblogs.com/HTLucky/p/11662711.html
Copyright © 2020-2023  润新知