记第一次使用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实现一下试试。到时候把代码也放上来。

相关文章
相关标签/搜索