在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是否開着,開着的話關閉,重啟服務就好了

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM