第1部分:应用场景
前面我们提到过宝塔linux面板+docker容器部署.net6网站的方式,需要了解的朋友可以参考我的文章《宝塔面板+.net 6(asp.net core 6)+linux+Docker如何部署网站》,但是这种部署方式有如下几个弊端:
1.更新不方便。
2.备份数据不方便。
所以这里我在介绍下直接通过自建服务进行部署。
第2部分:解决方案
1.首先我们需要安装.net 6的运行环境
在终端执行以下命令
先下载预装包:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
然后安装运行环境,可以是运行时,也可以是SDK
运行时命令:sudo yum install aspnetcore-runtime-6.0
SDK命令:sudo yum install dotnet-sdk-6.0(个人推荐,省的以后麻烦)
2.将.net6发布程序放到自己喜欢的目录下
我这里是放到/www/wwwroot/CSharp_WebAPI目录下
3.建立服务运行文档,通过宝塔面板打开以下路径,并新建service文件,注意,文件后缀必须为service
文件内容如下:
[Unit]
Description=CSharp_WebAPI[这里是描述,替换成你自己的]
[Service]
WorkingDirectory= /www/wwwroot/CSharp_WebAPI[这里是路径,替换成你自己的]
ExecStart=/usr/bin/dotnet /www/wwwroot/CSharp_WebAPI/CSharp_WebAPI.dll[这里是文件路径,替换成你自己的]
Restart=always
RestartSec=10 # Restart service after 10 seconds if dotnet service crashes
SyslogIdentifier=CSharp_WebAPI[这里是名称,替换成你自己的]
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
4.运行服务并且检查运行状态
进入Linux终端执行以下命令
执行systemctl enable CSharp_WebAPI.service【使服务可用】
执行systemctl start CSharp_WebAPI.service【启动服务】
执行systemctl status CSharp_WebAPI.service【查看服务状态】若看到绿色的active(running)字样说明服务正常启动了。
如果状态正常,可以按照项目指定的端口访问尝试,如此时,可以通过【http://IP:端口号】访问,如果正常,证明前面的步骤均无问题
5.新建静态网站
6.设置反向代理
注意,目标URL和发送域名必须按照【IP:端口号】的格式书写
例如:目标URL为【http:域名:端口号】 发送域名【域名:端口号】
但是这个写法有个问题,就是如果开启了防盗链,会导致png等文件无法访问
这里改为:目标URL为【http:127.0.0.1:端口号】 发送域名【$host】
同时防盗链中添加:域名及127.0.0.1即可
7.接下来,就可以通过你的绑定域名进行访问了!
暂无评论内容