menu 极光萝卜
部署.NET Core应用到CentOS7【2.0版】
folder_special 笔记    access_time 2018-1-31   remove_red_eye 882   comment 0

这段时间把VS从2015换成了2017,顺便体验了一下.net core 2.0版本,把直播间的扩展站点使用.net core 2.0中新的Razor Page重做了一下,半成果:http://forever.ijglb.com/

当然,最终也需要发布到linux上运行,随着了解的加深,这次的部署和上一次(http://www.ijglb.com/post/42)有一些区别在其中,也就有了这篇文章。

------------------------------------------------------------------------------------------------

首先是应用发布,这次直接发布为跨平台应用,使用如下命令:


dotnet publish -r linux-x64


其中的linux-x64可以视要发布的平台调整为对应平台。

TIM截图20180131214958.png

发布后我们到相应publish目录中查看文件,可以看到生成了可以直接在linux系统运行的文件 ForeverWeb :

2.png

------------------------------------------------------------------------------------------------

publish目录中的所有文件上传到服务器上,接下来安装依赖库:

根据官方文档,centos依赖

libunwind
lttng-ust
libcurl
openssl-libs
libuuid
krb5-libs
libicu
zlib


其他系统可以在该文档中查看:https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x


然后我们进入应用所在目录,给执行文件赋予权限:

chmod +x ./ForeverWeb


之后就可以运行我们的应用了:

./ForeverWeb


是不是很简单。

------------------------------------------------------------------------------------------------

作为一个需要持续运行的网站应用,这里使用systemd来守护进程。

在 /usr/lib/systemd/system/ 目录下创建 forever.service 文件:

# /usr/lib/systemd/system/forever.service
[Unit]
Description=ForeverEX Site
Documentation=http://forever.ijglb.com/
After=network.target

[Service]
ExecStart=/www/wwwroot/forever.ijglb.com/ForeverWeb
ExecStop=/bin/kill -HUP $MAINPID
Restart=on-failure
StartLimitInterval=1min
StartLimitBurst=60
LimitNOFILE=65534
LimitNPROC=65534
LimitCORE=infinity

[Install]
WantedBy=multi-user.target


相关写法可以自行百度systemd相关资料。

然后我们可以是用service命令来进行相关操作,一下为几个我常用的命令:

service forever start      #启动服务
service forever stop      #关闭服务
service forever restart   #重启服务
service forever status -l #查看日志
------------------------------------------------------------------------------------------------


接下来依然类似上次那样配置nginx反向代理,指向asp .net core应用的监听端口,网站即可通过外网访问到,这里就省略步骤了。


在部署过程中我还遇到一个坑,就是在非应用目录下运行应用的话(包括上述配置为service的情况),应用的Content将不会是应用所在目录,网站将会无法访问。

我个人的解决方式是在运行时直接指定ContentRoot

3.png

local_offer centos C# .netcore
赞助商链接:

发表评论:

account_circle
昵称不能为空
email
邮箱格式错误
link
网站格式错误
textsms