扩大
缩小
  

.Net Core3.1 Centos离线部署

由于生产环境无法链接外网,只能通过离线部署的方式安装.Net Core Runtime

1、ASP.Net Core Runtime 安装

1.1我们使用微软提供的离线安装包进行安装。首先下载tar.gz的离线包,下载网址:https://dotnet.microsoft.com/download/dotnet-core/3.1

这里选择Linux对应的架构的离线包下载

1.2 在Linux中创建目录

mkdir -p /var/lib/dotnet

1.3 把压缩包上传Linux,解压到/var/lib/dotnet目录

tar zxf aspnetcore-runtime-3.1.1-linux-x64.tar.gz -C /var/lib/dotnet

1.4 创建软链接方式来设置环境变量

ln -s /var/lib/dotnet/dotnet /usr/local/bin

1.5 测试runtime环境是否安装成功

dotnet --info

2、Asp.Net Core站点服务部署

2.1 在服务器上创建应用的目录

mkdir /home/www

2.2 通过FTP等工具将VS打包好的部署包上传到该目录

2.3 测试站点是否正常运行

cd /home/wwww
dotnet AspNetCoreDeployDemo.dll

如下图所示

2.4 网页测试或者命令行测试能否打开该地址,如果打不开,请检查firewall端口是否开放

wget http://localhost:5000

这时候,窗口不能关闭,如果关闭就访问不到,下面要使用suppervisor或者systemd等工具进行后台守护进程。

3、Supervisor守护进程

3.1 上传离线包安装,并启动suppervisor

cd /app/supervisor
./run_supervisor.sh

3.2 查看supperisor运行状态 

3.3 查看配置文件,并把后台界面端口关闭,可以看到会加载supervisord/下面的ini配置文件

3.4 创建AspNetCoreDeployDemo.ini文件

#项目名
[program:demo]
#脚本目录
directory=/home/wwww
#脚本执行命令
command=dotnet AspNetCoreDeployDemo.dll
#环境变量
environment=ASPNETCORE_ENVIRONMENT=Production
#用户
user = root
#进程数
numprocs=1
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=false
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=1
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes=10
#stdout日志文件备份数
stdout_logfile_backups=10
#日志输出
stderr_logfile=/app/supervisor/logs/demo/log_error.log

3.5 重启配置中的所有程序

supervisorctl reload

3.6启动程序

supervisorctl start demo

3.7常用命令

supervisord -v 查看版本号
supervisorctl 查看正在守候的进程
supervisorctl start <application name> 启动指定应用
supervisorctl stop <application name> 停止指定应用
supervisorctl restart all 重启所有应用
supervisorctl stop all 停止所有应用
supervisorctl start all 启动所有应用

4、Nginx反向代理

4.1 下载离线包,用浏览器打开地址,选择您要下载的版本:http://nginx.org/packages/centos/7/x86_64/RPMS/

4.2 这里我们下载的是1.16.1版,上传到服务器,执行命令安装

yum install -y nginx-1.16.1-1.el7.ngx.x86_64.rpm

4.3 启动Nginx并设置开机启动

service nginx start
#或者
systemctl start nginx.service
systemctl enable nginx.service

4.4 查看Nginx版本

nginx -v

4.5 查看Nginx启动状态

service nginx status
systemctl status nginx.service

如图为正在运行状态:

以上,Nginx已成功运行,安装的配置文件一般在/etc/nginx/nginx.conf

4.6 在/etc/nginx/nginxd/目录下创建站点的配置文件

vi /etc/nginx/conf.d/demo.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;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

4.7 重载Nginx配置

nginx -s reload

以上,反向代理已部署完成。

posted @ 2020-12-02 17:16  风筝遇上风  阅读(1478)  评论(0编辑  收藏  举报