.net core程序部署到 阿里云 - Go语言中文社区

.net core程序部署到 阿里云


1.准备工作

1.手写一个测试的程序

使用VS2019写一个测试文件:

[Route("api")]
    [ApiController]
    public class TestController : ControllerBase
    {
        public string Getstring()
        {
            return "api 收到了信息";
        }
    }

本地测试结果:
在这里插入图片描述

2.将测试文件打包发布

我们选择是可移植的方式打包。


3.下载远程操作工具

  • putty 使用 windows 远程连接 Linux 系统上
  • winscp 使用windows 远程上传文件到Linux上

这两个软件是免费的,还有几个常用的软件都是收费的。



2.阿里云服务器的配置


1.购买阿里云服务器

  1. 直接在网上购买即可(可选择学生服务,会有优惠)阿里云学生地址

  2. 点击进入控制台,相当于查看所有的实例(其实控制台就相当于是总的管理器) 我已经将实例更改为 Ubuntu 系统,Centos系统我不会。怎么重置系统,下边有详解。

  3. 如何重置连接的密码。
    在这里插入图片描述


2.安装 Ubuntu 的镜像


1.如果已经安装了其他的操作系统,可以重新更换操作系统。


在这里插入图片描述


2.我必须熟悉 Ubuntu 18.04. 所以安装了这个,下边可以自定义密码和登录名:

自定义的密码就是后面用远程工具进行连接的,登录密码和登录名。

在这里插入图片描述


3.使用 putty 连接远程服务器

3.1使用 putty 远程连接

要注意 : 他连接的是共有地址。

在这里插入图片描述
出现下面的界面,说明连接成功
在这里插入图片描述
输入root,然后输入密码,进入实例
注意输入密码是看不见的,所以可能已经输入了,只不过你看不到。


第一次登录成功以后,界面如下:

在这里插入图片描述

以后再登录成功:

成功登录后的界面如下:
在这里插入图片描述


3.2 安装 net core 的 SDK 文件

直接去微软官网查找,对应版本上的dotnet运行环境相关操作,此处的连接在unbuntu上安装.net core
直接执行相应的命令行,复制粘贴就可以了。注意一定是要安装对应的版本,千万不要安装错了。

注意使用 putty 的时候,复制完以后,直接右键单击就黏贴了。


可以执行下边的命令,来运行一下试试,如果安装成功,会有反应,如果没有安装上,会提示错误

dotnet  --info

4.3安全组配置

4.3.1 安全组是干什么的?

安装组其实就是用来放行端口的。通俗来说就是管大门的

具体的可以参考这个文章::阿里云安全组详细解说




常用的几个端口

  • 3389端口:远程桌面的

  • 20/21端口:FTP,上传下载文件的;文件传输的

  • 22端口:ssh 安全登录

  • 443: HTTPS 服务器

  • 25:e-mail 的默认端口

  • 3306端口:MySQL

  • 1521: Oracle 数据库

  • 6379: redis 数据库

  • 8888:宝塔面板初试接口

  • 80端口:一般做个人网站要配置的

  • icmp用来ping的


在这里插入图片描述

在配置里面进行配置,这样外网就可以使用80端口了,结果如下:

在这里插入图片描述

4.3.2 安装组的参数是什么意思?

点击 手动添加, 他就会多出来这么一行让你填

在这里插入图片描述
这些参数的具体含义:

  • 优先级:从一到一百的数字,数字越小,优先级越高。
  • 协议:自定义TCP就行了(具体是干啥的我不知道)
  • 端口范围:这个一定要写个范围,哪怕是只有一个端口,也还是 80/80 这么写。
  • 授权对象: 如果我们是想让所有的人都可以访问,那么就是默认的 0.0.0.0 / 0

一般配置这个的时候,都是选择公网入方向,进行配置。

授权对象实际上是运行方位的 ip 地址,如果允许所有的人进行访问,就是 0.0.0.0/0 ,如果是多个用户的话,可以中间用 , 隔开。




在这里插入图片描述

4.3.3安全组和防火墙的区别:
  • 云防火墙可以根据机器学习结果,自动将安全域进行分组;而安全组完全依赖于您静态的手动划分。

  • 云防火墙在访问控制策略生效之前,存在大量的模拟过程,可以帮助您保障策略的正确性;而安全组中规则在配置之后即刻生效,一旦访问规则配置错误可能直接导致业务中断。

  • 在云防火墙中您可以监控高危端口的访问情况。例如,查看3306端口是否有来自外部(互联网)流量的访问。

  • 云防火墙还可以帮助您进行服务器变更前的确认。例如,某个服务器需要下线时,您可以通过云防火墙查看该服务器是否仍有访问流量,从而判断服务器下线是否影响业务。



4. 使用WinSCP 传送文件

4.1 使用 WinScp 进行连接服务器。

1.连接成功后界面
在这里插入图片描述
2. 进入home 目录,普通用户都是在home 目录下进行操作,一般你也可以建立一个自己的文件夹,把东西都放在同一个文件夹里。
在这里插入图片描述
3.使用 putty ,在系统对应的文件夹里面,使用 dotnet 命令,运行相应的文件

 dotnet EF_core_demo.dll 
 注意 ctrl + c 是退出程序

默认启动80端口
在这里插入图片描述
执行命名运行:

dotnet EF_core_demo.dll  --urls http://*:5003 

(都是用空格分离的,有时候会报错,关掉重启有事时候就行)


4.运行成功后,将公ip地址复制粘贴上去,结果如下:

http://39.99.226.61:5001/api

只有服务器的域名是写在 : 前边的,端口号后边是 / 符号
在这里插入图片描述

4.2 守护进程

守护进程是安装一个类似于Windows Service一样的服务, 能实时监控程序状态,异常退出时能自动重启。Supervisor 是用Python开发的Linux/Unix系统下的一个进程管理工具。它可以使进程(类似Windows Service)脱离终端,变为后台守护进程(daemon)。能实时监控进程状态,异常退出时能自动重启。详细文档请查看官网。

配置守护进程Supervisor, 让我们的程序能365天24小时不间断运行

1.安装Supervisor

sudo apt install supervisor

2.创建配置文件
一般情况下,如果安装了 supervisor 以后,在对应的 /etc/supervisor 下面会产生一个文件,如果没有,可以通过以下命令进行创建。

mkdir /etc/supervisor

目录创建成功后, 通过 echo_supervisord_conf 程序(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

3.添加配置文件

在本地创建文件CoreWebTest.conf 内容如下:(正常的配置文件好像是没有逗号)

[program:CoreWebTest]                         ;自定义进程名称, 根据自己喜好命名
command=dotnet CoreWebTest.dll                ;程序启动命令 使用dotnet 命令
directory=/home/wwwroot/CoreWebTest           ;命令执行的目录 你.NET Core 程序存放目录
autostart=true                                ;在Supervisord启动时,程序是否启动
autorestart=true                              ;程序退出后自动重启
startretries=5                                ;启动失败自动重试次数,默认是3
startsecs=1                                   ;自动重启间隔
user=root                                     ;设置启动进程的用户,默认是root
priority=999                                  ;进程启动优先级,默认999,值小的优先启动
stderr_logfile=/var/log/CoreWebTest.err.log   ;标准错误日志 路径可以自定义
stdout_logfile=/var/log/CoreWebTest.out.log   ;标准输出日志  路径可以自定义 
environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量
stopsignal=INT                                ;请求停止时用来杀死程序的信号

4.将文件上传到目录:/etc/supervisor/conf.d下
如果文件传输的过程中,发现不能传输,可能是因为权限不够,可以执行如下命令,更改权限。

chmod 777  + 文件路径

也可以通过如下命令。打开一个带有权限的资源管理器:

sudo nautilus

5.启动supervisor

执行如下命令:

supervisord -c /etc/supervisor/supervisord.conf

遇到的问题:
会报一个错:

Error: Another program is already listening on a port that one of our 
HTTP servers is configured to use.  Shut this program down first before 
starting supervisord.For help, use /usr/bin/supervisord -h

这种情况下可以执行:

unlink /var/run/supervisor.sock

unlink /tmp/supervisor.sock 

这个错误的原因就是supervisor.sock 这个文件会被系统自动删除或者其它原因不存在了,删除软连接就可以了。 supervisor.sock 生成的位置可以去 supervisor 的配置文件中找到。


6.配置Supervisor开机启动
 为Supervisor创建一个服务启动的脚AutoStartSupervisor.service,上传到系统目录: /usr/lib/systemd/system/ 脚本内容如下:

[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target# 具体属性作用请官网查看

上传到目录: /usr/lib/systemd/system/ 下

设置开机启动:

systemctl enable AutoStartSupervisor.service

设置开机启动,验证是否成功

reboot

关于如何部署到 wind 服务器,可以参照https://www.cnblogs.com/dotnet261010/p/12151618.html
这样如果直接运行的话,关掉 putty 界面以后,程序会自动关闭,如果处理呢?这里就要添加守护进程 https://www.cnblogs.com/xrzs/p/9515037.html 当如果程序有异常,他就会自动重启他,实现360天不间断的运行。

https://www.jianshu.com/p/0b9054b33db3

https://blog.csdn.net/qq_18145031/article/details/84938721
https://blog.csdn.net/weixin_34206899/article/details/94449367
如果安装过程中,遇到问题,可以查看这个博客
https://blog.csdn.net/nb7474/article/details/103821255


5.购买域名


在阿里云上第一次购买,可以享受一年一块钱的优惠
寻找合适的文件,进行购买即可

在这里插入图片描述


然后进去域名解析,将公网 IP 地址映射上去即可。 (部分网站结尾的域名,需要实名认证才能有效)

具体如何解析:参考 阿里云域名怎么解析

具体的参数是什么意思,可以查看 阿里云官方文档

在这里插入图片描述

6.Putty详解

1.什么是SSH

SSH,Telnet和Rlogin是执行同一操作的三种方式:通过网络从另一台计算机登录到多用户计算机。SSH(代表“安全外壳”)是最近设计的高安全性协议。它使用强大的加密技术来保护您的连接免受窃听,劫持和其他攻击。Telnet和Rlogin都是较旧的协议,提供最小的安全性,所以一般情况下推荐使用SSH。

Window 系统也有自带打的远程链接服务,但是不推荐使用。

2.putty入门

  • 键入密码时,通常不会在窗口中看到光标移动,但是PuTTY 正在注册您键入的内容,并在按回车键时将其发送。(这种方法可以避免向观看屏幕的任何人透露密码的长度。)
  • 注销时,使用exit 或者logout ,不建议直接点会话窗口上的 x 健。这有点像以外挂断电话。
  • 使用复制,左键选择拖拽即可,右键粘贴。
  • 如果使用翻页功能,可以直接点击 PageUP 和PageDown

参考文献

[1] https://www.bilibili.com/video/BV11x41137MJ/?p=4
[2] https://www.cnblogs.com/terry-012/archive/2019/08/02/11289114.html
[3] https://www.cnblogs.com/LYF1997/p/11791591.html
[4]https://www.cnblogs.com/xrzs/p/9515037.html
[5]https://www.cnblogs.com/wmyll/p/10615051.html#commentform

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhaozhao236/article/details/107780016
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 02:35:18
  • 阅读 ( 1190 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢