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

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

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

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

項目結構圖:

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

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

後臺代碼。

代碼完成之後,發佈即可。

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

測試的服務器是阿里雲的一臺最低配置的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實現一下試試。到時候把代碼也放上來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章