28 May 2016

OS X 下使用证书认证

最近安全界爆出了一个 Docker/Swarm 2375 端口无认证的漏洞,甚至乌云里也有人搞批量扫描上报。事实上这个 2375 是 Docker Remote API 的端口,有了这个端口有什么用呢?任何能连上这个端口的人都能通过这个 API 在你的机器上部署容器,甚至是一个 privileged 的容器,那样几乎可以直接操作宿主机。但是这个端口其实本来就是干这事儿的,不过直接开放在公网上肯定危险,Docker 官方事实上一直推荐在生产环境中使用客户端证书的方式对该端口作认证。

08 October 2015

SQLAlchemy 下处理时区问题

嗯……随着我们项目越做越大了现在该考虑国际化啦,首先遇到的就是时区问题。 一般我们都会在一个表中加入类似 created_at 这样的字段,目的是记录这条记录到底是什么时候被创建的,但是我们这里存哪个时区的时间好呢? 直接存 UTC 这是一种做法,我在 Flask 的书上看见他也是这么做的,不管 3721 直接用 datetime.datetime.utcnow() 作为值传入数据库。那样不管数据库上到底是什么时间,我们知道数据库所有的时间都是 UTC,

11 September 2015

Nginx 的容器化

自从 Docker 出世后应用容器化便成为了未来开发运维一体化的趋势。Docker 推荐的理念是一个容器只跑一个进程,但是现在大家倾向于把它理解为广义上的单进程——即一个容器只运行一个应用服务,将所有服务模块化。 在这里遇到了一个问题,Nginx 这厮到底需不需要容器化? 强行容器化 Nginx 是有官方镜像的,那么说明 Nginx 官方也支持将其容器化,但是问题来了,Nginx 的配置文件要怎么放进容器中。 VOLUME 机制 将所有站点的配置文件放在同一个目录里,然后将其 VOLUME

06 September 2015

架设 v2 版本的 Docker Hub Mirror

在上次 docker 更新至 1.8.x 后,docker 默认使用 v2 版本的 registry api 来拉取镜像,目的是提供更安全更便捷的方式。 但是在 docker 1.8.1 的源码中,对于 api 的选择是这样的,先从设置的--registry-mirror=

17 August 2015

在 Docker Machine 中使用 Mirror 服务

Docker Machine 是 Docker 官方推出用来取代原来 boot2docker 的工具,其实我感觉就是把原来的 boot2docker 再次包装了一层?给了一个统一化的管理方式,但是这下问题来了,原来我们使用的 DaoCloud 的加速器服务在这里该怎么使用了呢? 先看了下docker-machine的大概操作,里面有个 ssh Log into or run a command on

17 August 2015

Flask 中的 Long Polling

Long Polling 并不是什么稀奇的东西,其实就是一个普通的 HTTP 请求,只不过在没数据时我们直接把他阻塞掉,直到有数据直接返回完成本次请求。 那么说白了代码其实就像是下面这样: from flask import Flask, jsonify from time import sleep app = Flask(__name__) app.debug = True @app.

15 August 2015

iPTV 终极方案

iPTV 是电信推出的针对家庭宽带用户的数字电视业务,其实也就是一个普通的网络电视机顶盒,只不过源是电信自己维护的,所以稳定性要比很多其他机顶盒好很多。 但是最麻烦的是经过几次更新之后,这个网络电视的机顶盒只能通过一次 PPPoE 才能成功连上电信的服务器(以前确实可以直接改 DHCP 就信了),但是我们之前还有一个路由器已经完成了 PPPoE 的过程,怎么做才能让路由下面的设备一就能够进行拨号呢? 最早是改变了一个接线方式,将猫上的 LAN 与路由上的一个 LAN 相连,然后路由再从一个 LAN 连至

15 July 2015

pip 缓存坑

Python 下常用的一个包管理工具就是 pip,今天我在一台服务器上部署 uWSGI 的时候遇到了这么个坑。 uWSGI 的 internal routing 依赖于 pcre,第一次用 pip 安装好后运行 uwsgi 时会出一个 !!! no internal routing support, rebuild with pcre support

10 July 2015

迁移到 Ghost

本着学习折腾 NodeJS 的目的,我打算把博客从 WordPress 迁移到 Ghost。Ghost 还有一个吸引我的地方就是他的默认主题就非常漂亮,用了好久的 WP 我越来越发现其实那么多功能我都不怎么需要,就需要一个平台来给你写东西就够了,Ghost 就是那么一个平台其实 Ghost 上很多功能都没有。 迁移的时候因为我打算一些图片什么的都放在自己服务器上,所以并没有给静态资源上 CDN,因此迁移的时候需要把文章里的图片链接都修正好花费了一些时间。还好,WP 上一个插件导出后是一个 JSON

02 July 2015

10.10.4 下第三方 SSD 开启 Trim 的正确姿势

在 10.10.4 之后已经有苹果官方推出的trimforce了,相当于使用较官方的方式开启 trim,但是开启 trim 后所造成的问题与 Apple 无关。 其实就是一条命令 $ sudo trimforce enable 然后等着自动重启就行。

Page 2 / 9