基于Django的全栈个人博客
基础但完整的三个DjangoFullstackBlog项目
这三个用的都是基础的Django全栈,没有做前后端分离。
前两个有完整教程,第三个教程无,但有redis缓存,后续可以三个对照着相互补充。
后续考虑加消息队列activeMQ:
https://ld246.com/article/1605109781073
加redis
部署nginx、华为云
基础的个人博客
27 栏目
40部署
第一次部署踩了不少坑,我选的服务器是阿里云ecs,有一个月免费试用
- 首先是选系统版本:
ubuntu 16.04自带python2.7,然后再安装我需要的那些包,会出现和python3打架的错误,到最后都没有解决。结果最后重置服务器为初始状态,换了Ubuntu 22.04 64位自带python3.10,不带python2.7就什么问题都没有。这一点对自己还是比较满意,不纠结一定要在原来的路径解决问题,有时候问题根本就不是问题,用老版本的系统就是自己给自己使绊子,但博客教程选的是ubuntu 16.04,因此造成了不少麻烦。
如何将ECS服务器重置为初始状态:
https://help.aliyun.com/document_detail/97749.html
- 不清楚防火墙端口设置,服务器nginx基础服务一直不能正常启动。
用了阿里云服务器装完nginx后,访问公网ip发现一片空白并没有出现nginx的welcom页面。
原因是首次部署阿里云服务器,没有配置安全组规则。
要自己添加http 80端口的安全规则才能正常
https://blog.csdn.net/qq_35430000/article/details/109826242
https://blog.csdn.net/LJFPHP/article/details/78670459
- 部署用代码
进入服务器并从远端clone项目,阿里云git clone有几率一直卡443connection error,重启之后好了
cd /home/sites/lvguoBlog.com
git clone -b branch_name URL
克隆URL下仓库的指定分支
虚拟环境,依赖包与静态文件生成:
source env/bin/activate
deactivate
cd DeployProject/
python3 manage.py collectstatic
nginx配置
server {
charset utf-8;
listen 80;
server_name 121.43.189.115;
location /static {
alias /home/sites/lvguoBlog.com/DeployProject/collected_static;
}
location /media {
alias /home/sites/lvguoBlog.com/DeployProject/media;
}
location / {
proxy_set_header Host $host;
proxy_pass http://unix:/tmp/121.43.189.115.socket; # 改成你的 IP
}
}
开启反向代理服务器nginx和wsgi服务器Gunicorn
The Gunicorn "Green Unicorn" (pronounced jee-unicorn or gun-i-corn)[2] is a Python Web Server Gateway Interface (WSGI) HTTP server.
sudo service nginx start
gunicorn --bind unix:/tmp/121.43.189.115.socket my_blog.wsgi:application
如果按上述配置(nginx和gunicorn中写ipv4地址)这样部署,加上DNS解析以后,会出现特殊现象:
(访问ipv4地址可以看到正常博客,但是访问域名是nginx欢迎页面),原因是dns解析的层次和发生的地点不一样。需要把nginx配置和gunicorn绑定的ipv4地址全部换成域名,这也说明,dns并不是我理解的那样工作的,需要重新思考,dns发生在什么时候
如何给个人全栈博客项目做压力测试
为个人博客项目进行压力测试,你可以使用以下步骤:
准备压力测试工具:有许多免费的压力测试工具,如 Apache JMeter、Gatling、LoadRunner 等。你可以根据你的需求选择适合的工具。
设定测试参数:设定模拟的请求数、并发用户数、请求间隔等。
构建测试脚本:使用工具来构建测试脚本,以模拟用户对网站的请求。
运行测试:启动测试,记录系统的响应时间、错误率、吞吐量等。
分析测试结果:根据测试结果,分析系统的瓶颈,以便于改进系统性能。
注意:在测试过程中,应该尽量模拟真实的用户行为,以获得更准确的结果。同时,在测试前,你需要保证数据库是真实的,以保证测试结果的准确性
目前已确定的项目
新思路:自动更新
需求:在哪写博客?
在哪更新博客?
博客自动拉取github仓库中的所有博客,定期更新
需要了解一下django定时任务
有django-crontab,celery(复杂,需要集成redis),django-apscheduler等库可以实现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?