网站前端使用到了layui、jQuery、Bootstrap框架,以及echaets实现数据可视化。
文章编辑器使用markdown,评论留言使用layui富文本实现。
后端使用python语言,django框架开发。
数据库主要使用MySQL,缓存使用Redis。
网站部署在阿里云服务器,使用docker部署,通过nginx反向代理,实现动静分离,css、js、字体、图片等静态资源使用七牛OSS对象存储,并通过华为CDN提供加速服务,动态资源由Django解析并处理。
整个站点流量通过调用百度统计的api接口实现流量统计分析。
博客网站按照用户身份权限共划分为网站前台、用户管理后台、管理员后台三部分,总共二十八个模块。
所有用户都可以通过网站前台浏览到博文、轮播广告、最新博文、热点博文、文章点赞等功能。
- 首页
- 文章分类
- 笔记目录
- 时间轴
- 留言板
- 关于页
- 文章正文
- 笔记正文
- 用户登录
- 用户注册
- 忘记密码
- 注销登录
用户注册后,通过登陆的用户可以进行发表文章评论、收藏文章、发表留言以及回复留言评论操作,在个人中心可以查看自己的浏览记录,收藏记录,点赞记录,还可以修改个人信息、修改密码、修改邮箱等功能。
- 个人中心首页
- 修改信息
- 修改密码
- 修改邮箱
- 浏览记录
- 收藏记录
- 评论记录
- 留言记录
后台博客管理系统是为管理员管理博客而设置的,管理员可以查看网站流量数据,查看注册用户信息,可以对文章进行发布、修改、删除操作。以及对文章分类,标签管理。还有设置博客网站的轮播图、友情链接等内容。
- 流量统计
- 文章发布
- 文章列表
- 文章分类
- 文章标签
- 文章评论
- 笔记发布
- 笔记列表
- 笔记名称
- 目录编排
- 笔记评论
- 网站配置
- 博主信息
- 关于页面
- 轮播管理
- 友链管理
- 留言管理
- 用户管理
[root@aliyun root]# cd /opt
# git记住密码
[root@aliyun opt]# vim ~/.git-credentials
https://cuiliang0302:[email protected]
[root@aliyun opt]# git config --global credential.helper store
# 拉取项目代码
[root@aliyun opt]# git clone https://gitee.com/cuiliang0302/myblog.git
# 初始化项目
[root@aliyun opt]# pip3 install click tinify
[root@aliyun opt]# chmod u+x /opt/myblog/other/update.sh
[root@aliyun opt]# sh /opt/myblog/other/update.sh
[root@aliyun opt]# mkdir -p /opt/docker/mysql
[root@aliyun opt]# cd /opt/docker/mysql/
[root@aliyun mysql]# docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d --restart=always mysql
# 拷贝数据库文件
[root@aliyun mysql]# docker cp myblog/other/myblog.sql mysql:/root
[root@aliyun mysql]# docker exec -it mysql bash
root@3bd762759930:/# mysql -u root -p
# 设置远程连接数据库权限(按需)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
# 创建数据库
mysql> CREATE DATABASE myblog DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myblog |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
# 导入数据
mysql> use myblog;
Database changed
mysql> source /root/myblog.sql;
mysql> show tables;
[root@aliyun docker]# docker run --name redis -p 6379:6379 -d --restart=always redis --requirepass password
fe24cb38242ed2f1c8c7340fa1ce05f39c8fc351a7a96506c43dff41ca0774bb
[root@aliyun docker]# docker exec -it redis redis-cli
127.0.0.1:6379> auth CuiLiang@0302
OK
运行前记得将setting.py密码密钥等信息填写自己的内容。
[root@aliyun docker]# cd /opt/myblog/
# 构建镜像并运行
[root@aliyun myblog]# docker build -t myblog:v1 .
# 测试开发环境
[root@aliyun myblog]# docker run --name myblog -p 8000:8000 -v /opt/myblog:/opt/myblog -d --restart=always --link mysql --link redis myblog:v1
[root@aliyun myblog]# curl 127.0.0.1:8000
# 线上环境
[root@aliyun myblog]# docker run -d --name myblog -p 8997:8997 -v /opt/myblog:/opt/myblog -d --restart=always --link mysql --link redis myblog:v1
# 将项目下的other/nginx移动至/opt/docker下
[root@aliyun myblog]# cp -R other/nginx/ /opt/docker/
[root@aliyun myblog]# cd /opt/docker/
[root@aliyun docker]# tree nginx/
nginx/
├── conf
│ └── nginx.conf
└── ssl
├── cdn.cuiliangblog.cn_chain.crt
├── cdn.cuiliangblog.cn_key.key
├── www.cuiliangblog.cn_chain.crt
└── www.cuiliangblog.cn_key.key
[root@aliyun docker]# docker run --name nginx -p 80:80 -p 443:443 -v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker/nginx/ssl:/etc/ssl -v /opt/myblog:/opt/myblog -v /opt/docker/nginx/log:/var/log/nginx -d --link myblog --restart=always nginx
-
修改hosts文件,分别访问测试
https://www.cuiliangblog.cn/
https://cdn.cuiliangblog.cn/media/
https://cdn.cuiliangblog.cn/static/
[root@aliyun ~]# chmod u+x /opt/myblog/other/make_bgc.py
[root@aliyun ~]# crontab -e
* 3 * * * /usr/bin/python3 /opt/myblog/other/make_bgc.py >/dev/null
[root@aliyun ~]# chmod u+x /opt/myblog/other/db_backup.sh
[root@aliyun ~]# crontab -e
* 4 * * * /usr/bash /opt/myblog/other/db_backup.sh >/dev/null