前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >说说我这个博客的架构

说说我这个博客的架构

作者头像
the5fire
发布2019-02-28 16:56:57
4350
发布2019-02-28 16:56:57
举报
文章被收录于专栏:Python程序员杂谈

题目写的有点大,说架构也谈不上什么架构,就是简单的几个工具的使用。

之前也有提到,博客是用Django1.3写的,部署在webfaction上,是一个centos系统。因此整体的架构是这样的:

代码语言:javascript
复制
centos + fabric + git + Virtualenv + Python2.6 + Django1.3 + Gunicorn + supervisor + nginx + memcache

看起来东西很多,其实都是开发部署很常用的东西,这些东西在我的博客里大部分都有介绍。

http服务器

webfaction主机提供了Apache的服务,帮你弄好了mod_python的模块,直接用也是可以的,不过碍于我对Apache不熟悉,只好自己下载一个nginx装了下,配起来也算简单。因此就用它来做HTTP服务以及处理静态文件。

web服务

这一块就是Django了,通过Gunicorn来启动Django,Gunicorn是一个纯python实现的Unix的WSGI,具体可以查看这里:How to use Django with Gunicorn ,

其实不是在命令行上直接启动的,是通过一个叫supervisor的东西来管理Django的进程的 参考这里,一开始是用supervisor启动两个进程,然后Gunicorn起了两个workder,后来想想就我博客这访问量没必要,于是就改成一个进程两个worker的方式运行。

部署 (差点忘了这个)

部署这部分也就用到fabric和git,通过它们可以很方便在本地直接部署最新的代码到服务器上,然后重启supervisor服务。具体流程其实就是先在本地push代码,然后用fabric远程登录到项目部署的目录pull下来,然后再重新启动supervisor就ok了。也算是自动化部署吧,算吗?

缓存

这块一开始的时候用的是Python实现的LRU缓存,这块的作用主要在博客正文下面那个 别人在读 和 在线人数 功能上。因为一开始的时候是两个进程,LRU没有进程间的通信,刚好发现webfaction有提供memcache的服务,既然有为何不用,于是就在Django里配置了一下memcache。

环境

linux系统是必须的了,当初选服务器也一定要是linux的,python的版本其实没有太多要求,自带的2.6没有太多缺陷就行。用Virtualenv来创建隔离的python环境一定是必须的,花600RMB搞一个主机只用来搭博客就太浪费了。这不前天又搭了个OSQA在qa.the5fire.com下,有资源就要充分利用才是。

大概也就这点东西,算不上干货。

如果你觉得我上面说的这些对你都是小菜一叠,碰巧你也在找工作,那赶紧跟我联系把。最近招聘的事让我压力很大。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • http服务器
  • web服务
  • 部署 (差点忘了这个)
  • 缓存
  • 环境
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档