記第一次使用NET CORE 2.2 完成的DEMO部署在LINUX而且上線

.NET CORE 這麼久了一直沒有成功打經過,今天花了點兒時間作了一個小DEMO,首次完成而且部署上線。記錄一下。javascript

DEMO中只是測試了一下從MSSQL中獲取數據,而且顯示在頁面上,涉及到了數據庫鏈接,以及相關的部署步驟。一直到域名綁定。php

最終上線的網址:http://test.core.68weitang.cn/ 因服務器過一段時間即到期,該網址有可能沒法訪問,相關源代碼附在最後。css

項目結構圖:html

 

引用了Business類庫項目,Business業務層實現具體的業務,這個項目只作了鏈接MSSQL數據庫,隨機獲取10條數據,轉換成List<AccountVO>的對象。java

Layouts項目就是調用Business業務層獲取數據列表。代碼以下:node

後臺代碼。linux

代碼完成以後,發佈便可。nginx

整個代碼部分的工做就完成了,接着我們來作部署方面的工做。web

測試的服務器是阿里雲的一臺最低配置的ECS,1個CPU,500M內存,系統裝的是CentOS 7.6的版本。數據庫

以前一直在安裝linux的環境上面有很大的問題,上傳文件要裝XFTP,WEB服務器要使用nginx等,對於沒怎麼深刻玩過LINUX的人,很頭疼。後來發現寶塔這個軟件很是好用,強烈推薦,安裝也比較簡單。

官方文檔地址:https://www.bt.cn/bbs/thread-19376-1-1.html,其實就一個命令就好了,很是簡單。安裝完成以後,會顯示寶塔的用戶名和密碼,這個須要記錄下,後面會用到。相似於下圖

安裝寶塔,主要是解決在LINUX中上傳文件,配置WEB服務器等,比較方便,這個並非必需要裝的,若是LINUX經驗比較充足的話,能夠不用這個。我下面的都是基於寶塔頁面操做的。

 

將咱們發佈的CORE的程序,打包截圖以下。

登陸寶塔:點擊左側的文件菜單,下面是截圖示例。

點擊上傳

選中當前的文件,點右下角的開始上傳,若是碰到文件上傳的失敗的問題,有多是寶塔的版本的問題,或是文件太大,這個我碰到過。

文件後面有個解壓的操做項,直接解壓就行 。

 

解壓完成以後,總體目錄下面就是這樣了。

 

打開CRT軟件,使用ROOT登陸上服務器以後,用這個命令 dotnet --info,看一下是否有效,若是無效,就說明沒有安裝NET CORE,我這個DEMO是使用的CORE 2.2,打開微軟的安裝地址,選擇對應的服務器安裝便可。

https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install  須要注意的是,要選擇對應的服務器。

 

安裝完成以後,再輸入dotnet --info 應該就顯示和我下面的截圖同樣了。

 

我們回到CRT中來,寶塔的中上傳的文件,通常是放在www/wwwroot/目錄下,CRT裏面用CD /www/wwwroot/便可到了該目錄。這個我還找了半天,不會玩的人真是醉了。

cd以後,能夠用ls查看一下目錄,我截圖你們看一下。

上面能看到咱們全部發布的WEB文件了,由於己經在寶塔裏面解壓了,固然我們的ZIP那個壓縮文件也在。

再使用 dotnet web項目名稱.dll,咱們這個項目的命令大概是這個樣子

dotnet DN.Core.Layouts.Web1.dll

下面的截圖能看到啓動了4001和4002兩個端口

這個說明就成功了。

通常狀況下,用服務器加端口的方式應該是能訪問的。我這裏面由於要用域名訪問,因此須要在寶塔中安裝nginx服務器作轉發。

進入寶塔頁面,左側菜單 軟件商店,安裝便可。安裝完成後有個設置項,以下截圖。

 

設置裏面須要配置域名和對應的轉發端口,即80對應的域名轉發到我們的4001服務上。

我把這個項目中使用的配置文件放在這裏,你們能夠參考一下。

  1 user  www www;
  2 worker_processes auto;
  3 error_log  /www/wwwlogs/nginx_error.log  crit;
  4 pid        /www/server/nginx/logs/nginx.pid;
  5 worker_rlimit_nofile 51200;
  6 
  7 events
  8     {
  9         use epoll;
 10         worker_connections 51200;
 11         multi_accept on;
 12     }
 13 
 14 http
 15     {
 16         include       mime.types;
 17         #include luawaf.conf;
 18 
 19         include proxy.conf;
 20 
 21         default_type  application/octet-stream;
 22 
 23         server_names_hash_bucket_size 512;
 24         client_header_buffer_size 32k;
 25         large_client_header_buffers 4 32k;
 26         client_max_body_size 50m;
 27 
 28         sendfile   on;
 29         tcp_nopush on;
 30 
 31         keepalive_timeout 60;
 32 
 33         tcp_nodelay on;
 34 
 35         fastcgi_connect_timeout 300;
 36         fastcgi_send_timeout 300;
 37         fastcgi_read_timeout 300;
 38         fastcgi_buffer_size 64k;
 39         fastcgi_buffers 4 64k;
 40         fastcgi_busy_buffers_size 128k;
 41         fastcgi_temp_file_write_size 256k;
 42         fastcgi_intercept_errors on;
 43 
 44         gzip on;
 45         gzip_min_length  1k;
 46         gzip_buffers     4 16k;
 47         gzip_http_version 1.1;
 48         gzip_comp_level 2;
 49         gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
 50         gzip_vary on;
 51         gzip_proxied   expired no-cache no-store private auth;
 52         gzip_disable   "MSIE [1-6]\.";
 53 
 54         limit_conn_zone $binary_remote_addr zone=perip:10m;
 55         limit_conn_zone $server_name zone=perserver:10m;
 56 
 57         server_tokens off;
 58         access_log off;
 59 
 60 server
 61     {
 62         listen 888;
 63         server_name phpmyadmin;
 64         index index.html index.htm index.php;
 65         root  /www/server/phpmyadmin;
 66 
 67         #error_page   404   /404.html;
 68         include enable-php.conf;
 69 
 70         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
 71         {
 72             expires      30d;
 73         }
 74 
 75         location ~ .*\.(js|css)?$
 76         {
 77             expires      12h;
 78         }
 79 
 80         location ~ /\.
 81         {
 82             deny all;
 83         }
 84 
 85         access_log  /www/wwwlogs/access.log;
 86         
 87          listen       80;
 88         server_name  test.core.68weitang.cn;
 89 
 90         location / {
 91             proxy_pass http://127.0.0.1:4001;
 92             proxy_http_version 1.1;
 93             proxy_set_header Upgrade $http_upgrade;
 94             proxy_set_header Connection keep-alive;
 95             proxy_set_header Host $host;
 96             proxy_set_header X-Real-IP $remote_addr;
 97             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 98             proxy_cache_bypass $http_upgrade;
 99         }
100     }
101 include /www/server/panel/vhost/nginx/*.conf;
102 }

其中的87-99行是我加的代碼,從域名映射到4001的端口。你們能夠參考一下。

而後打開上面的域名就能夠了。

 

另外,在這個過程當中,阿里雲的ECS可能會對端口有限制,這個須要在阿里雲裏面進行相關的設置。

 

第一次將CORE的程序跑在LINUX服務器上仍是比較開心的,我的感受難點,仍是在LINUX服務器的安裝配置這塊,若是沒用寶塔,真的是好麻煩,本身之前也用LINUX配置過,在安裝部署的過程就是碰到各類問題,一直沒有將CORE的程序發佈成功,此次用了一下寶塔,感受仍是比較方便的。

代碼有些是從其它項目中摘過來的,可能很不規範,由於只是作個示例DEMO。

 

文件下載地址,https://files.cnblogs.com/files/sp1086/DN.Core.Sample.zip 

換成百度網盤吧,博客園的下載很差使了。

連接: https://pan.baidu.com/s/1zjmXUiDaINN_IdFOnseXUA 提取碼: 49k5  

下一步,計劃把本身的一個小網站用CORE實現一下試試。到時候把代碼也放上來。

相關文章
相關標籤/搜索