.net core 開源和跨平臺,能佈署到當前主流的Windows,Linux,macOS 系統上。本篇咱們將在 Linux 系統上使用 ASP.NET Core Runtime 和 Jexus 佈署運行 ASP.NET Core 網站。linux
Linux 系統選的是 CentOS 7.4 64位
centos
.NET Core 安裝的是 ASP.NET Core Runtime 2.1(當時最新),其實也能夠安裝.NET Core SDK,但沒有必要,運行環境 Runtime 就OK了。瀏覽器
Jexus 用的是 5.8(當時最新) 獨立版(自帶Mono)。Jexus 配置簡單,性能也高,咱們能夠達到像在Windows的IIS接管Kestrel進程同樣的體驗。不像Nginx並無接管Kestrel 進程,咱們須要維護2個進程,增長了複雜度。下面咱們開始安裝佈署。服務器
1、安裝 .NET Corecurl
一、添加dotnet產品源性能
在安裝.NET以前,您須要註冊Microsoft密鑰,註冊產品存儲庫並安裝所需的依賴項。這隻須要每臺機器完成一次,運行如下命令:網站
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
二、安裝 .NET Core SDKurl
更新可用於安裝的產品,而後安裝.NET Core SDK,運行如下命令:spa
sudo yum update
sudo yum install aspnetcore-runtime-2.1
安裝完成後,在命令行輸入 dotnet --info 出現dotnet版本信息,說明裝安成功。.net
詳情見微軟官方文檔(https://www.microsoft.com/net/download/linux-package-manager/centos/runtime-current)。
2、佈署 ASP.NET Core 網站
寫了個簡單的名叫Snai.ReadSettings的ASP.NET Core網站,輸出一句 「使用 Jexus 佈署的第一個網站」 信息 ,上傳到服務器 snai.readsettings01 目錄下,用命令行進入到網站目錄,輸入 nohup dotnet Snai.ReadSettings.dll & 命令,後臺運行網站程序。nohup ... & ,爲後臺運行意思。
輸入 curl http://localhost:5000 命令,出現 「使用 Jexus 佈署的第一個網站」,說明.NET Core環境和網站安裝佈署成功。
因爲咱們準備用 Jexus 來作Web服務器託管 ASP.NET Core 程序,因此咱們不須要 dotnet Snai.ReadSettings.dll 這種運行方式,咱們先殺掉啓動運行的網站。
輸入 ps -ef | grep Snai 命令,找到 dotnet Snai.ReadSettings.dll 運行的程序,本找到前面的進程ID
輸入 kill -9 32755 命令,就能夠殺掉 dotnet Snai.ReadSettings.dll 運行程序,再 ps -ef | grep Snai 命令,已經找不到殺掉的程序了
3、安裝 Jexus,修改配置,啓動 Jexus 運行網站
一、安裝獨立版的Jexus,獨立版的Jexus自帶Mono,直接運行如下命令便可(須要在root身份下執行):
安裝成功後提示:OK, Jexus has been installed in /usr/jexus.
詳情見官方網站(https://jexus.org)。
二、修改 Jexus 配置
輸入 cd /usr/jexus/siteconf/ 命令,定位到配置目錄,輸入 ls 裏面有個 default 默認配置,輸入 cp default snai.readsettings01 把默認配置複製一份,輸入 vi snai.readsettings01 修改 snai.readsettings01 配置文件,修改後以下
port=80 # jexus WEB服務器偵聽端口(必填。固然能夠是其它端口)
root=/ /root/www/snai.readsettings01 # 網站URL根路徑(虛擬目錄)和對應的物理路徑,兩個路徑字串之間必須用空格分開(必填。既使這個網站是一個純粹的反向代理站,也得填)
hosts=* #OR your.com,*.your.com # 綁定的域名,因爲我沒有域名,用ip訪問,就輸入*
重點 AppHost 配置,默認這個多是註釋的,去掉前面#
CmdLine 運行網站的命令
AppRoot 網站的目錄
Port 端口號,不是Jexus對外服務的端口號,而是指要轉發的Asp.Net Core應用程序的端口號,若是在程序中使用了UsrUrls自定義端口則寫UsrUrls中填寫的端口(不建議使用UsrUrls自定義端口),在沒有使用UsrUrls自定義端口的狀況下端口號設置爲 0,Jexus會在運行時與Asp.Net Core進行"協商"具體使用的端口號,避免多個應用分配端口的麻煩和衝突的風險。
配置完成 按 esc 鍵完成輸入,輸入 :wq 保存退出。
這裏簡單說下vi編輯文件命令:
最開始輸入 a 開始修改輸入,按 esc 鍵完成輸入,:wq 保存退出,:q 不保存退出,:q!強制不保存退出
三、啓動 Jexus,運行網站
輸入 rm default 刪掉默認配置,輸入 sh /usr/jexus/jws start 啓動 Jexus
Jexus經常使用命令,start 啓動,restart 重啓,stop 中止
啓動完成後,在瀏覽器裏輸入 ip,訪問網站,顯示 「使用 Jexus 佈署的第一個網站」,啓動運行成功
注:先要確保80端口是通的
四、使用 Jexus 佈署運行第二個網站
將第一個網站的輸出改成 「使用 Jexus 佈署的第二個網站」,佈署到 snai.readsettings02 目錄下
定位到 Jexus 的 siteconf 目錄,輸入 cp snai.readsettings01 snai.readsettings02,複製配置,修改 snai.readsettings02 配置,修改後以下
保存退出配置修改,輸入 sh /usr/jexus/jws restart 重啓 Jexus
重啓完成後,在瀏覽器裏輸入 ip:8010,訪問網站,顯示 「使用 Jexus 佈署的第二個網站」;再輸入 ip ,顯示「使用 Jexus 佈署的第一個網站」,二個網站啓動運行成功
注:先要確保8010端口是通的
到此全部佈署基本完成,若是要佈署第三個,第四個網站也跟第二個相似。