这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试、压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方案,今天就跟大家分享一下如何将ASP.NET Core应用程序以生产的标准部署在CentOS上。
环境说明服务器系统:CentOS 7.2.1511
相关工具:Xshel、Xftp
服务器软件软件:.netcore、nginx、supervisor、policycoreutils-Python
准备你的ASP.NET Core应用程序首先将你的应用程序以便携的模式进行发布。
ps:这边我使用一个空的Web项目来进行演示,因为本篇主要介绍生产环境的部署,与应用无关。
命令为:dotnet publish –c release
具体的可以看:拥抱.NET Core,如何开发跨平台的应用并部署至Ubuntu运行 ,这篇博文介绍了以便携与自宿主方式发布web应用。
确保这份发布应用可以在windows上运行,以减少后续的问题。
为什么不用自宿主的方式进行部署?自宿主的发布方式进行部署会简单很多,为什么生产环境要使用便携的方式进行发布呢?
原因1:性能比便携式的低(主)。
原因2:微软给出的建议(次)。
口说无凭,有图有真相。
参考地址:https://docs.microsoft.com/zh-cn/dotnet/articles/core/app-types
so,既然是用于生产环境的,当然我们要追求更高的性能。
安装CentOS7这个就不细说了,网上教程很多,这边我使用了Hyper-V来虚拟化了CentOS7。
安装.NET Core SDK for CentOS7。sudo yum install libunwind libicu(安装libicu依赖)
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131(下载sdk压缩包)
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 来查看是否安装成功
如果可以执行则表明.NET Core SDK安装成功。
参考资料:
部署ASP.NET Core应用程序上传之前发布的文件夹至/home/wwwroot/。
这边我使用了Xftp进行文件的上传。