Charles

Linux 运维:SSH 服务的最佳实践

最近又提起了兴趣去折腾 VPS,买好一台新的 VPS 服务器后,第一件事情就是登上去设置环境,当然,SSH 登录必不可少,这也是远程操作一台服务器的先决条件。不过 SSH 服务器,默认不是按照最优的方式去配置的。所以,我打算自己总结一下 SSH 服务的最佳实践。

Keep Reading — 1389 words totally

重要的事情说三遍:ARQ协议

最近我遇到一个难题,我在阿里云买了一台服务器,用它搭建了一个“获取全世界互联网信息的服务”。我家用的是电信宽带,使用起来非常流畅,但是莫名其妙的是,在公司就不能很好地运作。公司用的也是电信的宽带服务,是写字楼园区专供的企业电信宽带服务。

Keep Reading — 2089 words totally

SOCKS 代理协议漫谈

SOCKS 代理协议是网络上使用非常普遍的一种协议,最近因为想要自己搭建一个穿透防火墙的代理,所以,顺便仔细学习了一下 SOCKS 的相关资料,还算有点意思,特此记录一下。

在使用 nginx 的时候,配置 gzip 模块,可以让服务器的伺服更加高效,对于文本类型的数据,传输量可以压缩一半左右。

官方建议我们创建一个叫 conf.d 的文件夹,使用 include 语句,将 gzip 的配置文件插入到 http 区段。

Keep Reading — 663 words totally

不知道从哪一届开始,老罗开锤子手机发布会的时候,会当场捐赠一款开源软件,第一次是捐赠给 OpenSSL,第二次是 OpenResty。那次发布会开完,OpenResty 在程序员圈子里火了一把,成为一种热门技术了。其实,OpenResty 在后端程序员世界里,早就享有盛名。当你不得不去面对高并发的场景的时候,你一定会发现 Nginx 的巧妙和强大,然后你会想到用 Nginx 解决问题,然后你一定会发现 OpenResty。

三年前就想学 OpenResty,一直被拖延症耽搁了。这期间,OpenResty 发展很快,无论是自身还是社区都进步很快,甚至也有了配套的 awesome-resty 项目。我下定决心这次好好学学。

Keep Reading — 2496 words totally

Yii 2.0 框架学习笔记-基础抽象

Yii 框架从 2.0 开始,底层抽象上面发生了一些变化。比如,多了 DI 和 Service Locator 等设计模式相关的抽象。这两天,专门看了下代码,写下一点我的想法。

上面的图是,是我用 Visual Paradigm 画的类图。从图里我们看到,2.0 版本以来,最根部的抽象是一个叫 Configurable 的接口,其主要作用就是说明所有的类都可以用类似 Key-Value 结构来进行配置。除了一些 Helper 的类,绝大部分对象都是 Configurable 的实现。

打开 Configurable 的代码,发现是一个空的接口,所以,我认为作者这是要表达一种抽象层面的概念,并没有实际的用途。查了 Stack-Overflow ,据说这是原自 Java 里的一种惯用做法,不过说实在的,我还是没有太理解,全空用来表达概念,可能是出于某种性能层面的考虑。但是,读起来确实有点故弄玄虚的错觉。

Keep Reading — 1441 words totally

最近,正好发生了一件大事,就是 GitLab 的运维同学不小心删除了生产的数据,虽然 GitLab 已经骇人听闻的准备了五种备份机制,但是,仍然导致他们丢失了将近 6 个小时的用户数据,尤其对他们声誉的损失,是根本无法估量的。反思一下,这个博客 Becomin’ Charles,也是没有完善的备份的,真是冷汗直冒啊,主要考虑到这是我的个人博客,但是想想已经坚持了快十年了,如果真的丢了的话,还是非常痛心的。

正好,老婆最近正在学习 Python 编程,我在教她,其实,我是 PHP 程序员,一点也不喜欢 Python,但是说实在,一个外行学编程的话,Python 确实比 PHP 友好太多了,只能推荐她学 Python 了。正好,借着这个机会,我决定自己也学学 Python 编程吧,于是,我决定要用 Python 做一个数据库的自动备份脚本。备份的位置,就用 Dropbox 来做吧,因为我的服务器是 Linode 提供的,美国 fremont 机房,选择美国的存储服务,比较合适。以下是我写得代码,Python 小白,敬请指教:

Keep Reading — 1003 words totally

使用 APT 源将 MySQL 升级到 5.7

我的博客是使用 Linode 搭建的,算算已经快有八年多历史了。从一开始,我就使用 Debian 发行版作为我的服务器版本。当时,最流行的服务器是 RedHat 和 Ubuntu,那时候我还没听说过 CentOS,哈哈,不想用盗版,又觉得 Debian 比较稳定,而且有无敌的 apt-get,就一直用 Debian 了。

因为我用 WordPress 搭建博客,一直以来,用的就是 MySQL 数据库,从 2015 年开始,MySQL 就推出了 5.7 版,增加了一些激动人心的特性,比如更好的 InnoDB,JSON,地理位置等等东西,一直以来还没机会探索。其实,我感觉,在做 PHP 的人群里,使用 MySQL 的新特性,一直以来都是比较偏保守的,也可能我个人处理更大规模的应用的机会比较多,平时更偏重于利用架构解决问题,反倒是对数据库本身的能力不甚了解。

Keep Reading — 738 words totally

2016 年 4 月 12 日,Let’s Encrypt 宣布,免费为广大网站提供 SSL 证书,从此,再也没有必要使用自签名证书了。本站也很早就用上了 Let’s Encrypt 提供的免费证书,那时候,还是使用的网友实现的 Python 脚本来进行的申请,后来,官方推出了官方客户端,也是 Python 实现的,我也懒得更换了。

这次,我突然遭遇了一次证书失效,(当然事后证明不是那么回事),怀疑到了非官方的证书申请客户端,并更换了官方推荐的形式,才发现,原来官方提供了这么好用的一个工具——certbot。所以,特此介绍给大家。

Keep Reading — 949 words totally