用微軟的kestrel在Linux上利用Apache架設Asp.Net Core環境

第一步,安裝dotnet環境,網上需求教程都沒有強調這一點,致使僅按教程是操做不了的。apache

添加dotnet 產品  Feed。要開始安裝.NET,您須要註冊Microsoft簽名密鑰並添加Microsoft產品提要。這隻須要在每臺機器上完成一次。 bash

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc  sudo sh -c 'echo -e "[packages-microsoft-com-prod] name=packages-microsoft-com-prod baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

開始安裝 ASP.NET Core運行時環境(有提問時所有回答Y)mvc

sudo yum update 
sudo yum -y install libunwind libicu sudo yum install dotnet-sdk-2.0.3

 第一步安裝完成,查看一下是否安裝成功app

dotnet --version

第二步升級系統並安裝Apache 2.4測試

sudo yum update -y
sudo yum -y install httpd mod_ssl

第三步建立Apache虛擬網站配置文件如:helloapp.conf,存放於位置/etc/httpd/conf.d/helloapp.conf網站

注意修改域名、IP地址和端口(端口要與應用程序設置一致)ui

<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>

測試配置文件是否有問題url

sudo service httpd configtest

從新啓動 Apache:spa

sudo systemctl start httpd    //啓動
sudo systemctl restart httpd  //重啓
sudo systemctl enable httpd  //
    

建立服務定義文件並存放在制定位置:/etc/systemd/system/kestrel-helloapp.servicerest

[Unit]
Description=Example .NET Web API App running on CentOS 7

[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production 

[Install]
WantedBy=multi-user.target

建立應用程序網站放置的位置目錄,要與上面服務定義的文件一致:

mkdir -p /var/www/helloapp

啓用該服務:

sudo systemctl enable kestrel-helloapp.service //啓用服務
sudo systemctl start kestrel-helloapp.service  //啓動服務
sudo systemctl status kestrel-helloapp.service  //查看服務狀態


第四步,發佈應用程序

建立示例測試程序

安裝好dotnet環境後執行如下命令

cd /home
dotnet new mvc -o helloapp

 修改Program.cs文件(也能夠修改配置文件) 

 public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseUrls("http://*.5000") //注意端口要一致
                .UseStartup<Startup>()
                .Build();
    }

將修改好的示例應用程序發佈到網站目錄

dotnet publish -o /var/www/helloapp/

將試圖文件夾拷貝到網站目錄下

cp -r /home/helloapp/Views/ /var/www/helloapp/

重啓apache便可範文網站

相關文章
相關標籤/搜索