在linux(CentOS-7)中部署netcore项目

在liunx(CentOS-7)中部署netcore项目

liunx环境是CentOS-7,使用的是虚拟机

目录

一、liunx中安装net环境
二、在本地发布项目
三、在liunx中上传文件
四、运行net项目
五、开启liunx防火墙端口,让局域网内其它主机进行访问
六、进程守护使用Supervisord
七、管理多个netcore项目
八、相关链接

一、liunx中安装net环境

微软官方文档(https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-centos)

1. CentOS Linux 7

安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
2. 安装SDK或者运行时
sudo yum install dotnet-sdk-7.0

或者

sudo yum install aspnetcore-runtime-7.0
3. 可以输入 dotnet --info 查看net安装信息

二、在本地发布项目

1. 在vs中右键发布文件夹,相关配置如下

在这里插入图片描述

三、在liunx中上传文件

1. 将发布的文件夹压缩成 Zip 格式
2. 在liunx中输入 rz 把文件上传到liunx中
3. 将zip文件夹进行解压

unzip <文件名称>

四、运行net项目

1. 在当前解压的文件夹下运行net项目
dotnet liunxDemo.dll
2. 如果出现端口被占用的情况,可以在启动时自定义端口号

如:

dotnet liunxDemo.dll --urls=http://0.0.0.0:5000

这里设置 0.0.0.0 的意义是:监听所有的网络接口,即 0.0.0.0,这样无论请求是从本机发送还是从网络的其他设备发送,应用都能接收到并处理。
如果是默认的 localhost 就只能监听当前系统的请求,在同一个局域网是请求不到 5000 端口网站的

3.在liunx中访问该网站

在这里插入图片描述

五、开启liunx防火墙端口,让局域网内其它主机进行访问

1.检测liunx防火墙状态
systemctl status firewalld
2.避免麻烦也可以直接关闭防火墙
systemctl stop firewalld.service  // 停止firewalld服务
systemctl disable firewalld.service // 开机禁用firewalld服务
3.如果没有关闭防火墙则需要开启端口,我们先开启5000和9001端口,9001会在后面使用到
firewall-cmd --zone=public --add-port=5000/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=9001/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload (更新防火墙规则)
firewall-cmd --zone=public --list-ports (查看所有打开的端口)

4.在局域网内的其它主机上访问该网站

在这里插入图片描述

可以看到已经可以成功访问该网站了。(注意:这里的 192.168.3.128 是liunx的IP地址)

六、进程守护使用Supervisord

1.为什么进行进程守护

在liunx中如果按 Ctrl+C 就会结束终端,如果不结束终端你就不能去做其它事情了。

2.使用Supervisord进行进程守护

Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
官方文档:http://supervisord.org/

3.安装Supervisord
yum install supervisor -y #安装
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务

若找不到supervisor包请尝试安装epel并更新yum
yum install epel-release -y
yum update
3.启用Superviosr Web界面

在安装supervisor后,寻找到etc/supervisord.conf
将以下行前面的 ; 注释删除

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

这里我们将 port=127.0.0.1:9001 修改为 port=0.0.0.0:9001 这样局域网内的其它主机也可以进行访问了(防火墙在上面已经开了9001端口)

4.更新配置并重启supervisor
supervisorctl update
systemctl restart supervisord
5.在局域网内访问supervisor

可以看到已经可以成功打开supervisor了(你不会有中间那条数据,不用在意这个)
在这里插入图片描述

6.为netcore项目进行进程守护

配置Supervisord中进程Conf
先在 etc/supervisord.conf 结尾查看进程配置文件相关的位置与文件名

在这里插入图片描述

于是我们在 etc/supervisord.d 文件夹下新建 helloworld.ini
并编写简易的配置(下面的配置需要根据文件进行修改)

[program:helloworld] ;程序名称
command=dotnet helloworld.dll ;运行程序的命令
directory=/root/apps/helloworld/ ;命令执行目录
autorestart=true ;自动重启
stderr_logfile=/var/log/helloworld.err.log ; 错误日志文件
stdout_logfile=/var/log/helloworld.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
startsecs=10 ;自动重启时间间隔

environment 也可以填写 Development

7.重新启动Supervisor服务并查看是否成功
supervisorctl update
systemctl restart supervisord
8.进入Web页面查看

helloworld.dll (配置时ini内第一行填的名字) 属于running状态
可以看到已经可以成功打开supervisor了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yDSJCup-1692328700083)(4.png)]

七、管理多个netcore项目

在 apps下建立多个文件夹,上传多个文件发布的Linux运行环境Asp .Net Core 应用文件
建立多个类似的Supervisor 进程 Conf
重启Supervisor服务
在Web面板上更快速的管理,操作,发布

八、相关链接

在Linux上使用Supervisor管理多个Asp .Net Core应用进程
Linux防火墙操作命令,开放或关闭端口
在 CentOS Linux 上安装 .NET SDK 或 .NET 运行时
Supervisor官方文档
VMware虚拟机通过bridged(桥接模式)设置静态IP

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Centos7发布说明 环境说明: 服务器系统:CentOS 7.2.1511 相关工具:Xshel、Xftp 服务器软件软件:.netcore、nginx、supervisor 准备好发布的程序 安装.NET Core SDK for CentOS7 打开网址:https://www.microsoft.com/net/core#linuxcentos 复制如下命令,单步执行: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin 输入 dotnet –info 来查看是否安装成功 配置Nginx 下载安装Nginx,单步执行如下命令: curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx.rpm yum install nginx systemctl start nginx 来启动nginx systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。 配置防火墙 命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口) 命令:systemctl restart firewalld(重启防火墙以使配置即时生效) 测试nginx是否可以访问。 配置nginx对ASP.NET Core应用的转发 修改 /etc/nginx/conf.d/default.conf 文件,将文件内容替换为: server { listen 80; 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; } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值