网站首页> 文章专栏> Centos7安装.NET Core3.1运行时并部署网站
Centos7安装.NET Core3.1运行时并部署网站
日期:2020-08-24 22:46:45 作者:jzlnice 浏览量:2658

参考链接:https://www.miboxapp.com/article/detail/1146659339214393344

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

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
 
2.NET Core 运行时允许运行使用不随附运行时的 .NET Core 所开发的应用。 以下命令安装 ASP.NET Core 运行时,这是与 .NET Core 最兼容的运行时。 在终端中,运行以下命令。
sudo yum install aspnetcore-runtime-3.1
 
3、将网站打包上传至服务器目录

4、安装进程守护
前往supervior 官网下载,官网网址:
https://pypi.org/project/supervisor/#files

 
5、使用命令进入home目录并解压压缩包,
cd /home/
tar -zxvf supervisor-4.2.0.tar.gz
 
解压后进入supervisor-4.2.0目录并安装
cd /home/supervisor-4.2.0
python setup.py install

6、配置 Supervisor
新建Supervisor 目录并初始化配置
   cd 
   mkdir /etc/supervisor
   echo_supervisord_conf>/etc/supervisor/supervisord.conf
初始化完成后需要进入/etc/supervisor/目录修改supervisord.conf文件
   vi /etc/supervisor/supervisord.conf
在配置文件末尾增加以下代码
[include]
files=conf.d/*.conf

修改完成后保存并退出(按ESC+:wq 保存退出)
创建守护网站进程配置
        mkdir /etc/supervisor/conf.d
        vi /etc/supervisor/conf.d/web_dotnet.conf
将以下内容复制到web_dotnet.conf文件中并保存(按ESC+:wq 保存退出)
[program:web_dotnet]
command=dotnet web_dotnet3.1.dll
directory=/home/wwwroot/web_dotnet
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/app.err.log
stdout_logfile=/var/log/app.out.log
 
directory:表示网站所在的根目录
Command:执行的命令,web_dotnet3.1.dll为网站根目录的朱程序文件
7、创建supervisor 自启动服务
   新建开机启动配置文件
       vi /etc/systemd/system/supervisor.service
   将以下内容复制到配置文件中并保存(按ESC+:wq保存退出)
[Unit]
Description=supervisor
 
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExexStop=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
 
[Install]
WantedBy=multi-user.target

 
执行命令使配置生效
        systemctl daemon-reload
设置服务开机启动,即设置enable
        systemctl enable supervisor.service
启用supervisor 
        systemctl start supervisor.service
执行完成后可以通过以下命令查看是否已经运行
        ps -ef|grep dotnet
 

8、开放指定端口,
   firewall-cmd --zone=public --add-port=5000/tcp --permanent
   systemctl restart firewalld.service
 
设置好后,telnet 5000端口不通。
使用命令查询到netstat -nultp  5000端口的 local Address127.0.0.1
 
重点说明 0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口、127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性
 
::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:IP和端口的分隔符

 
该值是在应用程序中修改,
修改网站的启动时的默认地址

 
再次查询,local Address 已变成 :::5000 telnet也通了
 
9、5000端口通后,外网用IP访问,浏览器报错,无法访问到页面(应该网站服务也没请求到)

有事没继续查询下去,第二天看的时候发现外网可正常访问了^_^。 问题后续查看

10、更新网站程序后,页面打开会报错,用supervisorctl命令重启网站应用
 
supervisorctl 常用命令如下
 
supervisorctl update 更新新的配置到supervisord(不会重启原来已运行的程序)
supervisorctl reload,载入所有配置文件,并按新的配置启动、管理所有进程(会重启原来已运行的程序)
supervisorctl start xxx: 启动某个进程
supervisorctl restart xxx: 重启某个进程
supervisorctl stop xxx: 停止某一个进程(xxx)xxx[program:theprogramname]里配置的值
supervisorctl stop groupworker: 重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:startrestartstop都不会载入最新的配置文
supervisorctl reread,当一个服务由自动启动修改为手动启动时执行一下就ok
 
来说两句吧
最新评论
    热门文章
      随便看看