使用WTM框架创建博客系统后台并在云服务器发布
阅读导航
- 关于lqclass.com
- 博客后台前后端部署
- 2.1 已部署访问链接
- 2.2 nginx 部署
- 2.2.1 后台后端发布
- 2.2.2 后台前端发布
- 2.2.3 云服务器部署
- 下次分享
1. 关于lqclass.com
lqclass.com是新建博客网站的域名,博客网站站名暂定乐趣Class,前期边开发边分享开发成果。
2. 博客后台前后端部署
2.1 已部署访问链接
先给出后台前后端访问链接吧:
- 后台前端
http://admin.lqclass.com/
测试账号与密码同名:lqclass.com
- 后台后端
http://api.lqclass.com/swagger/index.html
对部署细节感兴趣的朋友可继续阅读后面的内容。
前后端部署,对常做B/S开发的朋友来说,应该是很简单,我这只做下简单记录,技术交流请阅读原文留言,因为本号没有留言功能...
2.2 nginx 部署
博客系统正在开发,部署暂时未上Docker,毕竟我不熟,Nginx倒是接触过几回了,来日方长,不着急。
2.2.1 后台后端发布
使用WTM创建的后端,目前框架最高只能选到.NET Core 3.1,.NET 5.0还未支持。
.NET Core的发布很方便,只需要选择主工程,右键点击“发布”,弹出发布配置界面(下面是我的发布配置),选择的部署模式是框架依赖,服务器上只需要安装.NET Core运行时即可(当然也可以选择独立发布,运行时都不用安装):

将打包发布生成的文件拷贝到服务器,生成的目录是:
lqclass.com\src\LQClass.Admin\LQClass\bin\Release\netcoreapp3.1\publish
服务器上具体存放的目录,2.2.3后面接着说。
2.2.2 后台前端发布
前端发布也方便,一句命令:
npm run build
完事,将前端发布生成的文件拷贝到服务器,生成的目录是:
lqclass.com\src\LQClass.Admin\LQClass\ClientApp\dist
服务器上具体存放的目录,2.2.3接着就讲。
2.2.3 云服务器部署
买了一个Windows Server 2016的云服务器,部署比较方便。
部署步骤:
- 下载 nginx,解压到某目录。
http://nginx.org/en/download.html
- 将后台前后端发布生成的文件存放在nginx的html目录中,目录结构如下:

- admin:后台前端Web文件,使用
WTM生成的vue前端; - api:后台后端文件,.NET Core 3.1 Web API,计划也做为前台后端,使用
WTM生成的后端;
api后端文件不是必须放在nginx目录下,只是为了方便管理,运行后端时直接双击运行LQClass.exe即可,用nginx做反向代理。
- web:前台前端,目录只是vue cli创建的空项目,目前也可以访问的,只是没多大意义
访问地址:
lqclass.com
- 配置
nginx-1.19.5\html\nginx.conf
一级域名、二级域名创建及关联云服务器IP,DNS解析等请在云服务器控制台那边折腾,这个就不详说了。
下面是nginx的配置,站长折腾了好一会儿,因为不熟,问了Dotnet9技术交流群的一些大佬,然后折腾出来的,配置的可能有点啰嗦,有建议欢迎留言哦,配置注释我直接写在下面配置文件中:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; // 80端口
server_name lqclass.com; // 前台对外访问域名
location / {
root html/web; // 前台发布文件目录
index index.html index.htm;
}
}
server {
listen 80; // 80端口
server_name api.lqclass.com; // 后台后端对外访问域名
location / {
proxy_pass http://127.0.0.1:5000; // nginx反向代理的后端地址,双击运行后端本地的访问地址,外网通过api.lqclass.com可以代理到该地址
}
}
server {
listen 80; // 80端口
server_name admin.lqclass.com; // 后台前端对外访问域名
location / {
root html/admin; // 后台前端发布文件目录
index index.html index.htm;
}
location /api {
proxy_pass http://127.0.0.1:5000/api; // 后台前端访问后端接口时的代理地址,使得nginx可以处理跨域的问题
}
}
}
- 双击nginx.exe,外网即可访问
乐趣Class的前后台前端、后端了,访问地址见2.1。
3. 下次分享
目前博客系统的后台前后端使用WTM搭建,为了后面开发博客系统前台,站长决定先熟悉WTM的已有API接口,正在使用WPF重构后台客户端(.NET 5),尽量仿照后台前端风格及功能,比如登录页面:


文末资源分享
- 回复数字【01】:获取DotNet技术资料
- 回复数字【02】:获取Java技术资料
- 回复数字【03】:获取Android技术资料
- 回复数字【04】:获取C++技术资料
- 回复数字【05】:获取Qt技术资料
- 回复数字【06】:获取React资源
- 添加号主微信号【dotnet9】:备注【入群】加入与大佬们的技术交流
- 添加QQ群【771992300】:备注【Dotnet9】加入技术交流,无人数上限、有资源共享
时间如流水,只能流去不流回。
- 公众号:Dotnet9
- 号主微信号:dotnet9
- 仓库地址:lqclass.com
- 本文Markdown、pdf、ppt:点击下载
- 作者及编辑:沙漠之尽头的狼
- 日期:2020-12-26
使用WTM框架创建博客系统后台并在云服务器发布的更多相关文章
- 博客系统-后台页面搭建:eazy
业务分析:布局为四个模块上边是系统描述,左边是导航菜单,中间是每个窗口的内容,下边是版权信息 点击左边的导航按钮,在右边窗口显示 代码: <%@ page language="java ...
- Hexo博客部署到腾讯云服务器全过程(Nginx,证书,HTTPS),你要的这里都有
背景 说来也惭愧,博客已经搭建很久了,一直免费的部署在 Coding 和 Github Pages 上,前者迁移到腾讯云 Serverless,导致原有的配置始终有问题,没时间仔细研究,刚好腾讯服务器 ...
- 在云服务器搭建WordPress博客(一)实现云服务器与域名的绑定
随着云的兴起,越来越多的人选择在云服务器上搭建自己的博客,比较著名的开源博客管理系统当属WordPress了,那么怎么在服务器上搭建WordPress呢? 我们需要让别人能够访问我们的博客,就比如输入 ...
- 基于express+mongodb+pug的博客系统——后台篇
上一篇介绍了模板引擎pug.js的用法,这一篇就主要写后台逻辑了. 后台的大部分的功能都有了,只是在已经登录的状态下,前台和后台的逻辑处理还不是很完善. 先上几张图吧,仿旧版的简书,改了下UI,因为没 ...
- 【blog】推荐一个博客系统后台管理模板 - pinghsu
pinghsu https://github.com/chakhsu/pinghsu
- 从零开始,搭建博客系统MVC5+EF6搭建框架(4)下,前后台布局实现、发布博客以及展示。
一.博客系统进度回顾 目前已经完成了,前台展示,以及后台发布的功能,最近都在做这个,其实我在国庆的时候就可以弄完的,但是每天自己弄,突然最后国庆2天,连电脑都不想碰,所以就一直拖着,上一篇写了前端实现 ...
- 三分钟入坑指北 🔜 Docsify + Serverless Framework 快速创建个人博客系统
之前由于学摄影的关系,为了提高自己的审美,顺便锻炼下自己的英文能力,翻译了不少国外艺术类的 文章.最近一直想搭一个个人博客来存放这些内容,又懒得折腾建站,遂一直搁置. 直到偶然发现了 docsify ...
- 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网" ...
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些 ...
- 基于Microsoft Azure、ASP.NET Core和Docker的博客系统
欢迎阅读daxnet的新博客:一个基于Microsoft Azure.ASP.NET Core和Docker的博客系统 2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客 ...
随机推荐
- 【C#】【System.Linq】一些便捷的数据处理方法(Range、Select)
因为用习惯了Python中一些便捷的方法,随即查询C#中有没有类似的. 一.Range()方法 在Python中,range(Start,End,Step)可以直接生成一个可迭代对象,便用于需要循环多 ...
- 使用dtd定义属性
- STM32CubeMX教程1 工程建立
1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 2 ...
- 在终端输入EOF
在终端输入EOF 问题 如下是一个计算校验和的程序,其中使用了while循环,需要在标准输入中读取到EOF才能跳出循环. #include <stdio.h> int main(){ in ...
- WPF通用权限平台系统,正在研发中(基本于:VS2019 WPF+Devexpress21.2)
WPF通用权限平台系统,正在研发中(基本于:VS2019 WPF+Devexpress21.2) 开发工具:VS2019 C# WPF 第三方工具:Devexpress21.2 数据库:SQLServ ...
- 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
前言 书接上回,上回我们了解了 castle 代理的一些缺点,本文将开始操作整合 Microsoft.Extension.Dependency和Castle,以让默认的容器可以支持拦截器 我们将以进阶 ...
- Python 潮流周刊第 35 期(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- C++ 观察者模式实现
观察者模式 主体(被观察者)通知一个或多个观察者状态改变/数据更新/事件发生. 描述 C++ 实现观察者模式有几个要点: 观察者都有一个共同的抽象基类 Listener,定义了一个纯虚接口 OnNot ...
- 中国汽车工业协会 SDV 软件定义汽车服务 API 第三版下载
开门见山,下载链接: https://files.cnblogs.com/files/tengzijian/SDV_API_Version3_Beta1_公众号:好记性如烂笔头.zip?t=16904 ...
- CodeForces 1105D 嵌套BFS
CodeForces 1105D 嵌套BFS 题意 - 给我们一个n*m的阵列,一个格子如果是#则为障碍,若为.则为空,若为数字,则代表这个格子属于该数字代表的玩家. - 给我们每个玩家(不到十个)的 ...
