也许是最简单的新浪云 Channel服务教程
为什么说也许是最简单的Channel服务教程呢?因为真的很简单啊,总共只有两个文件,一共只有不到30行代码,但是已经完整的实现了HelloWorld了,除了把代码全写在一行里,不然恐怕这已经是最短的例子了~
为什么说也许是最简单的Channel服务教程呢?因为真的很简单啊,总共只有两个文件,一共只有不到30行代码,但是已经完整的实现了HelloWorld了,除了把代码全写在一行里,不然恐怕这已经是最短的例子了~
SAE内部的一些服务,比如MySQL,包括独享型和共享型,默认是无法在外网访问的,这给本地调试带来了一些麻烦,但是,有了VPN隧道服务之后,可以利用VPN隧道服务连接到SAE的内网环境,这时候,就可以在本地计算机直接连接这些服务了。
2016年5月3号,一个被广泛使用的图片处理库ImageMagick
被爆出存在一处远程命令执行漏洞(CVE-2016–3714),当其处理的上传图片带有攻击代码时,攻击代码中的远程命令将会被执行,进而可能控制服务器。
这个漏洞被命名为ImageTragick,甚至还有了一个属于这个漏洞自己的网站(https://imagetragick.com/)
同样,SAE上也是安装了这个库的,在PHP运行环境中,也是有PHP-Imagick这个扩展的,这就意味着SAE的PHP环境也是有相同的远程命令执行漏洞的。
因此SAE在第一时间修复了该漏洞,并执行了更严格的策略,和官方提供的解决方案相比,更加严格的杜绝了类似现象的发生。下面就来看看这个漏洞的产生,以及SAE是如何修复这个漏洞的。
事情的原因,是发生在某个晚上的9点30左右,SAE的报警系统突然报出了异常,所有的Web服务器的负载突然变得很高,流量也变得异常的大。
这个是很有问题的,在SAE最前面的反向代理上,是部署了SAE自己开发的‘CC防火墙’的,如果出现了异常的被攻击的情况,这些异常的流量是不会到达
Web服务器的,现在这些流量都到达了Web服务器,说明要么是攻击没有被正常判断,要没就是这不是一次攻击。
事实上确实这也不是一次攻击。
随后的分析,我们发现了一堆比较‘奇怪’的应用,为什么说‘奇怪’呢,因为这些应用的访问趋势是这样子的:
这是其中一个应用的数据,然而在这个应用的帐号下面,大约有十个类似的应用,都是这样的趋势,所以对于我们的Web服务器来说,在特定的时刻要接受
接近10倍左右的流量,对于当前的规模就有点‘顶不住’了。
工作中,需要对单个MySQL进程进行限制,并且对MySQL进程消耗的IO,CPU Time,Memory等进行统计,首先想到的就是使用Cgroups对进程进行限制,同时,Cgroups提供的一些接口,也可以非常方便地读取到进程消耗的IO,CPU Time, Memory等数据。
但是在实现自动化之后(使用了自己编写的一套管理程序来对MySQL进程进行管理),却发现了一个非常奇怪的问题:从Cgroups中读取的进程Memory消耗完全是一个不正确的值,使用ps命令查看到的MySQL进程内存大概是2G左右,可是通过读取memory子系统下memory.usage_in_bytes接口获得的数据大概只有几十KB,基本上是一个完全不相干的数值,这个就非常的奇怪了,虽然在官方的文档中
在PHP的配置文件中,添加一行extension=xxxx.so,就可以使PHP加载xxx这个扩展,那么这个扩展具体是怎么被加载到PHP中的?可以看一下。
在PHP中,有很多内置的函数,这些函数包括绝大部分的功能,还有一些函数,是PHP的扩展提供的,只有安装了扩展并开启,函数才可以被使用,这些函数的实现,都是用C来实现的,因此有着最好的效率。
在某些情况下,可能要对这些用C实现的函数进行一些额外的更改,比如说,对其进行一个伪实现,或者,在调用之前检查是否满足特定的情况,也就是说,对这些函数进行Hook。
比较暴力的办法,就是找到需要伪实现或者Hook的函数的源代码,直接把对应的源代码修改后重新编译,这样虽然能解决问题,但是相对的,非常麻烦,也不好移植。
下面就是另一个办法,我们可以自己新建一个扩展,然后,在扩展中找到对应的函数实现,然后直接把这个函数实现替换成自己的。
由于工作中某个需求,需要使用Cgroups对某个进程的IO进行限制。所以,需要在Cgroup的blkio子系统中进行配置,我们限制的是读取磁盘的iops,所以,需要在blkio.throttle.write_iops_device中写入该限制。
echo "8:0 10" > /cgroup/blkio/test/blkio.throttle.read_iops_device
这里,对sda的read iops进行了限制,上限为10次IO操作每秒。
由于项目需要,最近在CentOS 6系统中配置了一个DDNS(Dynamic DNS)服务器,
从而实现了动态对域名的添加删除等操作,记录一下步骤,备忘。