湛江网站营销,万网速成网站有哪些 功能,广告制作公司电话,山东做网站公司系列文章使用 abp cli 搭建项目给项目瘦身#xff0c;让它跑起来完善与美化#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API#xff0c;包装返回模型再说Swagger#xff0c;分组、描述、小绿锁接入GitHub#xff0c;用JWT保护你的API异常处理和… 系列文章使用 abp cli 搭建项目给项目瘦身让它跑起来完善与美化Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API包装返回模型再说Swagger分组、描述、小绿锁接入GitHub用JWT保护你的API异常处理和日志记录使用Redis缓存数据集成Hangfire实现定时任务处理用AutoMapper搞定对象映射定时任务最佳实战一定时任务最佳实战二定时任务最佳实战三博客接口实战篇一博客接口实战篇二博客接口实战篇三博客接口实战篇四博客接口实战篇五Blazor实战系列一Blazor实战系列二Blazor实战系列三Blazor实战系列四Blazor实战系列五Blazor实战系列六Blazor实战系列七Blazor实战系列八Blazor实战系列九终结篇之发布项目 终于到了这一步了开发了 API紧接着又开发了 Blazor 版的博客项目庆祝本系列文章完结撒花。???????????? 既然开发完成了还是拿出来溜溜比较好本篇是本系列文章的最后一篇了准备将 API 部署到 Linux把前端 Blazor 开发的博客部署到 GitHub Pages。bloghttps://blazor.meowv.comapihttps://api2.meowv.com 先放地址体验一下要有点耐心第一次访问会下载资源文件到本地浏览器后面访问就贼快了。 也是第一次使用 Blazor 开发项目不管怎么说这个实验性的带教学和宣传目的博客总算是搞出来了自己用的话完全可以同时在开发过程中自己也有不少收获。发布API 发布自己写的后端API项目必须要有属于自己的服务器当然如果只是为了动动手玩玩就没啥必要了因为 .NET Core 跨平台咱们可以任意选择我这里演示将项目发布到 Linux 下。 在这之前可以看一下我去年的一篇文章基于.NET Core开发的个人博客发布至CentOS小记 简单了解下。 我的机器是很久之前撸羊毛的渣渣配置服务器1G内存1核CPU1M带宽不过对于我们这种小站来说没啥访问量照样用。???????? 首先肯定是需要安装 .NET Core 运行环境直接安装最新的 .NET Core 3.1 即可。这一步大家根据微软官方文档来就可以了https://docs.microsoft.com/zh-cn/dotnet/core/install/linux 。 安装完成后可以使用 dotnet --list-runtimes 查看运行时。 接着就可以去安装 Nginx 高性能 Web 服务器在这里使用它反向代理的功能当然它的功能远不止于此。关于 Nginx 的安装我也不说了如果你不懂网上太多教程了。 安装完成后可以使用 nginx -V 查看安装版本等信息。 到这一步就可以把我们API项目部署上去了直接利用 Visual Studio 将项目打包发布appsettings.json配置文件信息填好这一步不用多说吧相信大家都会。 利用 WinSCP 工具将发布好的代码上传至服务器我这里新建了文件夹 qix/api2 方便自己管理顺便提一句WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。 那么现在我们可以在终端中定位到API所在目录cd /qix/api2然后执行命令启动项目dotnet run Meowv.Blog.HttpApi.Hosting.dll这时候便会看到输出信息我们就可以使用服务器IP端口的方式访问到API了。 如果只是这样肯定不是我想要的这时候就引入了 Linux 下的守护进程就类似于 Windows 下面的服务一样让守护进程帮助我们运行项目当关机、重启或者其它异常问题出现时可以自动帮我们重启应用就是自动执行dotnet run xxx.dll这句命令。 关于守护进程用的比较多的supervisor 与 pm2 前者基于Python开发的后者是基于nodejs开发的。 咱这里就选用 supervisor 了当然 pm2 也不错也可以用用。 在 centos 下安装 supervisor 也很简单直接贴几行代码照着执行即可。yum install python-setuptoolseasy_install supervisormkdir /etc/supervisor
echo_supervisord_conf /etc/supervisor/supervisord.conf安装成功后还需要花点时间去配置它找到文件 /etc/supervisor/supervisord.conf 去掉文件最后的注释可以改成向下面这样。...
[include]
files conf.d/*.ini这时候就可以监听到 conf.d 文件夹下面的 ini 配置文件了在 /etc/supervisor/ 下新建文件夹 conf.dconf.d 文件夹下新建一个配置文件 api2_meowv.conf 文件名字随便起内容如下[program:api2_meowv] # api2_meowv程序名称
commanddotnet Meowv.Blog.HttpApi.Hosting.dll # 执行的命令
directory/qix/api2 # 命令执行的目录
environmentASPNETCORE__ENVIRONMENTProduction # 环境变量
userroot
stopsignalINT
autostarttrue # 是否自启动
autorestarttrue # 是否自动重启
startsecs3 # 自动重启时间间隔s
stderr_logfile/var/log/api2.meowv.com.err.log #错误日志文件指向目录
stdout_logfile/var/log/api2.meowv.com.out.log #输出日志文件指向目录每行都带有注释很清楚知道是干啥用的顺便贴几条常用的命令supervisorctl start program_name #启动某个进程(program_name配置的进程名称)
supervisorctl stop program_name #停止某一进程
supervisorctl reload #重新启动配置中的所有程序
supervisorctl stop all #停止全部进程
supervisorctl update #更新新的配置到supervisord
supervisorctl restart program_name #重启某一进程
supervisorctl #查看正在守候的进程使用上面命令成功启动项目使用IP端口的方式去访问API肯定是不友好的这时候就需要一个域名了我这里将新建一个二级域名 api2.meowv.com 执行新开发的API项目。 关于域名的解析啥的不说了配置完域名我顺便去申请了一个SSL证书使用HTTPS的方式访问。 这时可以去配置 Nginx 方向代理了。来到 nginx 安装目录我这里是 /etc/nginx 新建一个文件夹 ssl 将申请的SSL证书放进去然后再 conf.d 文件夹下新建一个 api2_meowv.conf 文件写入下面的配置信息。server {listen 443 ssl;server_name api2.meowv.com;ssl_certificate ssl/1_api2.meowv.com_bundle.crt; ssl_certificate_key ssl/2_api2.meowv.com.key; ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;ssl_prefer_server_ciphers on;location / {if ($request_method OPTIONS) {add_header Access-Control-Allow-Headers Authorization,Content-Type;add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;return 204;}proxy_pass http://localhost:5009;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 20M;}
}server {listen 80;server_name api2.meowv.com;rewrite ^(.*)$ https://api2.meowv.com;
}关于配置信息大家可以自己去学习一下我这里也是简单的使用我这里监听的端口是 5009这个端口在 API 项目中是可以自定义的相信大家都知道。做好以上操作后在终端执行 nginx -s reloa刷新 nginx 配置使其生效然后就大功告成了。 关于项目中的数据库和Redis缓存大家可以自行安装。数据库可以选择使用Sqlite项目中已经做了一键切换数据库。安装Redis也很简单相信大家可以自己完成Redis可用可不用可以直接关闭。 现在API项目便发布成功将其部署在Linux系统下面有了线上正常运行的API接下来把前端 Blazor 开发的博客也发一下。发布Blog 为了节省服务器资源现在里面已经容纳了超级多的东西了我准备将 Blog 部署在 GitHub Pages 上。 使用 Blazor WebAssembly 发布后是纯静态的文件所以啊其实放在哪里都可以。无关乎环境只要可以开启一个WEB服务即可。 在GitHub上创建一个仓库来放我们的发布后的代码关于创建仓库不会的看这里https://pages.github.com 。 接下来去发布 Blazor 项目发布之前改一下API地址当然这个也可以做成配置文件形式的。 然后将创建好的仓库克隆下来把博客静态文件拷贝进去这时候还不能直接push到仓库中为了适配 GitHub Pages 我们还要做几点改动。 GitHub Pages 使用的是 Jekyll以特殊字符开头的文件夹是不会被映射到路由中去的我们发布的静态文件中刚好有以_开头的文件夹_framework为了解决这个问题可以在仓库下面创建一个以.nojekyll命名的空文件即可。 根据实际操作和踩坑现在如果发布还是会报一个无法加载资源的错误The resource has been blocked.然后在GitHub找到了解决办法详见https://github.com/dotnet/aspnetcore/issues/19907#issuecomment-600054113 。 新建一个.gitattributes文件写入内容* binary即可现在将文件 push 到仓库。 然后在仓库的settings下面开启 GitHub Pages 功能选项。 我这里自定义了一个域名如果你也想自定义域名可以在根目录添加一个名为CNAME的文件里面的内容就是你的域名我这里就是blazor.meowv.com 。 最后在去配置一下域名的 CNAME 解析即可等待 DNS 生效便可以用自定义域名访问了。结束语 本系列文章从零开始搭建了API使用 Blazor 开发了一个简单的博客系统功能不是很多。整体来说从无到有自己也踩了一遍坑也算有不少收获了。 在这里再次感谢那些在公众号给我赞赏的人。???????????? 可能整体涉及到的东西不是很多广度和深度都没有只是很基础的用了用在写之前我也已经说过这些系列是用来记录自己的编码过程因为大佬们都不愿意出来分享所以我们渣渣只能做到这种程度。 如果对你没啥帮助权当看过笑过????????或者右上角点一下小叉叉❌❌因为不管你做的如何总有人喜欢说三道四~~ 如果对你有些许帮助请多多推广哟。✨✨✨ 最后大家可以关注一下我的微信公众号『阿星Plus』???????????? 因为疫情影响今年高考推迟到7月份每年高考便是我所在公司的业务高峰期接下来实在太忙估计也没时间创作了正好准备休息一段时间好好思考思考后面为大家带来更好的文章有缘人下个系列见吧。???????????? 本系列文章代码开源地址https://github.com/meowv/blog