• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

在自己的服务器上做些有趣的事情 

时间飞逝,从刚接触云服务器到现在转眼就过去了四年,期间不断地接触到新的知识、新的技术。而有些东西总是需要自己折腾实践一遍才能真正理解,现在就把我在服务器上做过的有趣的事情记录一下。

Overview

折腾了这么长一段时间,已经陆陆续续购买了3台阿里云的ECS。一台上海节点、一台深圳节点、一台香港节点。

技术栈:

  • 服务器采用ubuntu 16.04,然后用nginx作为web server,数据库主要用mysql,部分项目依赖postgresql,缓存选择redis,消息队列使用rabbitmq,偶尔也拿redis来做消息队列。
  • 开发语言主要使用python,接触过Flask和Tornado,异步喜欢用celery,wsgi喜欢用gunicorn来跑,爬虫经常是多进程+gevent。平时也用golang做开发,线上环境使用docker进行编译。服务/进程管理通常使用supervisor。

ECS分配:

  • 上海节点部署了blog,wiki,gitlab,ldap还有依赖的mysql,redis等。
  • 深圳节点部署了微信公众号,各种小服务,数据统计。
  • 香港节点用来当梯子,未备案的网站统统放这里。

Blog

链接:https://chenjiehua.me

用Wordpress搭建了自己的博客,曾在众多的博客系统中纠结于选择哪个,也曾在各个华丽炫酷的主题间挑选修改。后来,慢慢体会到博客的意义在于知识的分享,与其做一个好看的皮囊,不如让它拥有一个有趣的灵魂。闲暇之际,就把平时的知识笔记整理分享出来。

Wiki

链接:http://wiki.chenjiehua.me

用Confluence搭建的个人wiki,许多零散的知识记录在博客显得太琐碎,所以便寻找一个记录笔记的新工具。Confluence是团队协作文档工具,支持多人同时在线编辑。对于我来说,用来记录零碎的的知识再合适不过。

链接:https://note.chenjiehua.me

在使用Confluence之前,使用的是dokuwiki,使用类似markdown的语法来编辑。其实dokuwiki也不错,能满足基本的记录需求,不过功能还是相对比较简单。现在我就把它当作一个收藏夹来用了。

Gitlab

链接:https://git.chenjiehua.me

代码版本控制是每个程序员都需要使用到的,很多人可能会直接使用Github,然而搭建一个私有的Git Server不是更加geek?最早的时候直接使用git bare repo+git web来实现,后来换成了gitlab使用起来就更加方便了,对于一些非公开的代码,也是一个极佳的归属。

Cloud

链接:https://cloud.chenjiehua.me

国内的网盘云存储不可靠,国外的又比较慢,所以还是自己搭建一个云空间比较安全。采用NextCloud部署,满足日常存储的各种需求,支持分享和各种插件。另外,它也支持WebDav,对于许多提供WebDav同步的软件App非常好用。

TODO

链接:https://board.chenjiehua.me

使用KanBoard搭建的一个看板工具,也可以快速进行任务管理和计划安排,也可以当作一个简单的TODO List来使用。事情多了总会遗漏,当作备忘录都可以。

个人公众号

名称:浪里小肥龙(imdragon233)

用python tornado开发了个人微信公众号,当作自己的个人展示和一些小功能,学习新的技术,自娱自乐一番。

电子书公众号

名称:书香志

写了一个爬虫,从网上爬取了10万本电子书,接近300G的数据。在公众号内可以搜索书籍,直接在线阅读。

简单的API

链接:http://doc.chenjiehua.me/api/

闲暇无聊,从网上爬取了IP地址,电话归属地等数据,然后再把它做成API来调用。

APP后台开发

链接:http://doc.chenjiehua.me/movie/

曾经在开发一个APP,负责服务器后台开发,编写了接口的文档。

Docker

链接:https://docker-web.chenjiehua.me

前段时间在做微服务相关的工作,于是就自己搭建了一个私有的docker仓库。然后再用docker registry frontend搭了一个web界面,进行简单的管理。微服务化势必成为一种趋势。

LDAP

上面部署了这么多项目,很多都是需要账号登录的,这么一折腾,岂不是要管理一大堆账号密码?于是便找来了OpenLDAP,大部分项目都是支持ldap登录的,这样子一来就轻轻松松了~对于部分没有账号管理的项目,使用Nginx的basic_auth 也可以勉强凑合着用。

科学上网

其实这个应该放在第一步写的,如果连google都上不了,还好意思说自己是个写代码的?找个香港/东京/悉尼的服务器节点,简单搭建个ss,日常需求足以,这里就不详细介绍了。

Sentry

Sentry是一个错误追踪软件(平台),可以用来收集服务的报错信息,业内还是很常使用的。曾经在自己的服务器上搭建了一番,不过实在是太消耗内存,最后就直接使用官方的服务。

邮件服务

使用Postfix搭建了一个SMTP服务器,用来发送邮件或者推送消息/异常报警。现在阿里云已经不再开放25端口,不过以前的服务器还是可以继续偷偷使用。

服务器管理

链接:http://ganglia.chenjiehua.me

日常的监控使用ganglia,负载、内存、CPU、磁盘、网络、IO的监控指标能够清晰的呈现出来,随时查看服务器的状态还是很方便的。

链接:http://nagios.chenjiehua.me

服务器异常状态的报警通过nagios来完成,当监测到负载突然增大、内存/磁盘空间不足等异常情况时,发送邮件通知。

数据报表

链接:http://grafana.dragon233.com

通过statsd+graphite+grafana的组合,可以轻松实现对应用/服务从数据监控收集到数据呈现出来。比如可以统计某个服务的QPS,服务的响应时间等等。

链接:http://redash.dragon233.com

Redash用来做数据报表呈现,支持从各种数据源读取数据进行展示,绘制图表,分析数据一目了然。

码字很辛苦,转载请注明来自ChenJiehua《在自己的服务器上做些有趣的事情》

评论