一,Windows Server+IIS部署
1,安裝配置IIS,這個應該都不用多說了,教程一堆
2,下載安裝.NET Core Runtime 與 .NET Core SDK,下載請點擊下載地址,如圖
3,打開IIS管理器,應用程序池——添加應用程序池,名稱隨意,.NET Framework版本選擇無托管代碼,托管管道模式選擇集成,如下圖
4,網站——添加網站
- 網站名稱
- 應用程序池,選擇上一步創建的無托管代碼的應用程序池
- 物理路徑選擇你發布的項目的所在路徑
- 綁定-綁定主機名,綁定你解析的域名
5,瀏覽剛才創建的網站,訪問成功
二,CentOS 7+Nginx
前言:之前沒接觸過Linux平台,下面的內容純屬個人見解,莫見笑
1,服務器連接工具,Xshell 6,協議SSH,用戶身份驗證,輸入賬戶,密碼,連接
2,安裝.NET Core運行環境,NET Core Runtime 與 .NET Core SDK,安裝請點擊下載地址,如圖
3,項目上傳到服務器,推薦使用FileZilla連接服務器管理文件
- 打開FileZilla
- 文件-新建站點
- 協議使用SSH,輸入主機名(IP),用戶名,密碼,點擊連接
- 連接成功,菜單-服務器,開啟 強制顯示隱藏文件
- 本地文件與服務器文件實現互通上傳,下載,刪除等操作
4,項目通過FileZilla上傳到服務器后,使用Xshell 6使用命令cd到項目所在的路徑
使用.net core的運行命令,運行啟動項目的dll文件
dotnet xxxxxxxx.dll
項目運行成功后,即可以通過IP+端口號訪問項目了,假如訪問不到注意是否是阿里雲服務器的端口是否打開,或者是服務器的防火牆端口是否打開
注:ASP.NET Core默認的端口號是5000,可以通過修改項目的Program.cs文件,修改端口號
WebHost.CreateDefaultBuilder(args) .UseUrls("http://*:5001")//修改默認端口 .UseStartup<Startup>();
注:這里有個問題就是當你把Xshell 6關閉后,項目也沒辦法訪問了。。。這里得用另外一個命令保持后台常駐
nohup dotnet xxxxxxxx.dll &
如果需要關閉這個進程,可以通過lsof加項目的端口號查找進程信息
lsof -i:5005
再通過kill -9 id殺死這個進程,項目就無法訪問了
kill -9 17377
5,安裝Nginx為項目綁定域名
由於對Linux命令不熟悉,又不想花太多的心思在服務器上,我這里選擇服務器安裝 寶塔Linux 去界面化管理服務器
- 安裝寶塔Linux,點擊進入寶塔Linux官網
- 選擇 寶塔Linux 免費版,查看頁面底部的安裝發放
- 選擇CentOS腳本安裝,復制命令,使用Xshell 6粘貼執行命令
- 等待寶塔Linux安裝完畢
- 安裝的最后一步會顯示寶塔Linux的登錄地址與初始賬號密碼,登錄地址默認是服務器IP地址加上8888端口號 http://IP地址:8888
- 打開寶塔Linux的鏈接,輸入初始賬戶密碼,登錄成功后可以修改賬號密碼
4,通過寶塔的軟件商店,安裝Nginx,打開Nginx,配置修改
在Nginx加以下配置
# http 80端口 server { listen 80; #監聽80端口 server_name www.baidu.com; #綁定解析的域名 location / { proxy_pass http://localhost:5000; #項目運行服務端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
5,增加https訪問,把SSL證書文件放到 /www/server/nginx/conf/cert 路徑下,使用以下配置
# http80端口兼容https443端口 server { listen 80 default_server; #監聽80端口,作為默認網站,即使用ip訪問時默認出現的站點 listen 443 ssl; #同時監聽443端口為ssl server_name www.baidu.com; #配置證書段,證書放在nginx安裝目錄的conf/cert目錄下。 ssl_certificate cert/xxxxxxxxxx.pem; #證書pem ssl_certificate_key cert/xxxxxxxx.key;#證書key ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:-LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
注:點擊保存,Nginx會自動重啟服務,如需手動啟動切換到服務選項卡里重載配置