ASP.NET Core多平台部署 (Windows Server+IIS與CentOS 7+Nginx)


一,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會自動重啟服務,如需手動啟動切換到服務選項卡里重載配置

 


免責聲明!

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



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