CentOS+Linux部署.NET Core应用程序

匿名 (未验证) 提交于 2019-12-02 22:09:29

工具:

WinSCP+Xshell+VMware

1.安装CentOS

省略安装过程...

①更新可用的安装包:sudo yum update

②安装.NET需要的组件,libunwind和libicu库:sudo yum install libunwind libicu

sudo yun install dotnet-sdk-2.2

④安装完成之后,检测是否安装成功

dotnet --version

3.使用Visual Studio 2019发布WebApi应用程序

4.部署应用程序至CentOS服务器

这里使用WinSCP工具操作。

将发布程序拖到想的任一文件夹下

5.运行发布程序

进入部署对应的文件下面运行对应dll,就可以正常run起来。

6.配置守护进程Supervisor

6.1.安装Supervisor

yum install python-setuptools

easy_install supervisor

6.2.配置Supervisor

①运行supervisord 服务的时候,需要指定 Supervisor 配置文件,所以,先通过如下命令创建目录,以便让 supervisor 成功加载默认配置:

mkdir /etc/supervisor

②初始化配置文件:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

③修改supervisord.conf配置信息:

vi /etc/supervisor/supervisord.conf

④最下边找到如下文本片段:

修改为:

注意:文件存放的目录,最好写明从根目录开始。

该操作的目的是我们创建一个supervisor 进程配置文件加载目录。让supervisor自动加载该目录下 .ini 后缀的文件作为服务配置

6.3为我们部署的.NET Core添加进程配置文件

②在此文件加下创建uiorderapi.ini(名称随便取)文件

③配置uiorderapi.ini文件

 1 [program:uiorderapi]  2 command=dotnet eHi.UI.Order.Api.dll --urls http://*:8082  --environment "Dev"      ; the program (relative uses PATH, can take args)  3 ;process_name=%(program_name)s ; process_name expr (default %(program_name)s)  4 ;numprocs=1                    ; number of processes copies to start (def 1)  5 directory=/root/www                ; directory to cwd to before exec (def no cwd)  6 ;umask=022                     ; umask for process (default None)  7 ;priority=999                  ; the relative start priority (default 999)  8 ;autostart=true                ; start at supervisord start (default: true)  9 ;startsecs=1                   ; # of secs prog must stay up to be running (def. 1) 10 ;startretries=3                ; max # of serial start failures when starting (default 3) 11 ;autorestart=unexpected        ; when to restart if exited after running (def: unexpected) 12 ;exitcodes=0,2                 ; 'expected' exit codes used with autorestart (default 0,2) 13 ;stopsignal=QUIT               ; signal used to kill process (default TERM) 14 ;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10) 15 ;stopasgroup=false             ; send stop signal to the UNIX process group (default false) 16 ;killasgroup=false             ; SIGKILL the UNIX process group (def false) 17 ;user=chrism                   ; setuid to this UNIX account to run the program 18 ;redirect_stderr=true          ; redirect proc stderr to stdout (default false) 19 ;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO 20 ;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB) 21 ;stdout_logfile_backups=10     ; # of stdout logfile backups (0 means none, default 10) 22 ;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0) 23 ;stdout_events_enabled=false   ; emit events on stdout writes (default false)

supervisord -c /etc/supervisor/supervisord.conf

这时候已经不需要使用dotnet命令运行程序, 同样可以访问我们部署的.NET Core程序了

6.5配置Supervisor开机启动

进入/usr/lib/systemd/system/目录,并创建supervisord.service文件(或者在本地写好了再通过WinSCP工具传输到指定目录下)

vi /usr/lib/systemd/system/supervisord.service

 1 [Unit]  2 Description=supervisor  daemon  3 After=network.target  4   5 [Service]  6 Type=forking  7 ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf  8 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown  9 ExecReload=/usr/bin/supervisorctl $OPTIONS reload 10 KillMode=process 11 Restart=on-failure 12 RestartSec=42s 13  14 [Install] 15 WantedBy=multi-user.target

设置开机启动

systemctl enable supervisord.service

systemctl daemon-reload

重启,测试是否可以开机自启

7.Supervisor端口号设置

①查看当前所有开放的端口sudo firewall-cmd --list-ports

②添加端口到防火墙(这里已8082端口为例)

③重启防火墙,使配置生效sudo firewall-cmd --reload

④查看是否已经增加sudo firewall-cmd --list-ports

⑤更新supervisor配置文件,保存并执行sudo supervisorctl update

文章来源: https://www.cnblogs.com/zcfeng/archive/2019/07/25/11240181.html
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!