nginx下载动态限速模块 Nginx-limit-traffic-rate-module

nginx自身提供了限制并发连接数和限制单连接速率的功能,可以根据这两个参数,对客户端进行粗略的速度控制。例如,设定每个ip最大5个并发连接,每个连接最大100kBps,那么可以将客户端的最大速率控制在500kBps;但是这样带来一个问题,如果用户使用单线程的下载工具,那么只能达到100kBps的速度,只有使用多线程下载工具才能达到500kBps。

bash的vi编辑模式

以前在unix下用ksh,用的ksh -o vi,后来在linux下用bash,可以用这个命令进入:

linux下打包发布wxpython程序

windows打包wxpython程序比较简单,用py2exe就能全部搞定了。

json-cpp库在linux下的编译

jsoncpp是一个c++封装的json包,跨平台支持windows、linux、unix等多系统,macOS据说也支持。在windows下面使用比较简单,直接往vc里面添加项目就可以了。linux下面编译需要使用到scons,scons又是一个牛叉的工具,功能和GNU make一样,又比make简单多了。scons是python工具,需要先安装好python。

py2exe打包python2.7脚本

在一个机器上打包的程序,放到另一个机器上运行就会报错:“由于应用程序配置不正确,程序未能启动.重新安装应用程序可能会纠正这个错误”。

为nginx编写新filter模块

filter模块与其他模块的配置不同,需注意第二行为HTTP_AUX_FILTER_MODULES,否则将不能正常运行。这是由于ngx_http_write_filter_module模块的特殊性导致的,必须保证filter模块后于ngx_http_write_filter_module加载,如果这个参数配置错误,模块的加载顺序就乱了。

搭建简易git开发环境

准备两个linux机器,其中一个是git服务器,主要用于备份代码;另一个是工作机。这样搞死一个也不会导致代码丢失。

nginx按ip打印调试信息

这个功能很实用,服务器上线后访问量大,无法打开debug,就可以用这个功能,根据异常的ip地址来进行打印debug信息。

使用zabbix管理网络

工作中需要监控很多分布到不同机房的机器,最主要是要监控网络流量,由于机房内部都是内网地址,所以需要一个分布式的监控解决方案。一开始只用nagios+pnp简单采集数据,后来试用了一下cacti,配置上要简单多了,而且图像也好看点,但是不支持分布式监控。于是想到用zabbix,zabbix比nagios简单,比cacti功能强大,配置好zabbix_proxy之后,添加节点就相当简单了,可以在中心监控服务器上进行所有操作。并且zabbix还支持聚合图像,提供了定制页面的功能。

XEN的”ip_conntrack: table full, dropping packet.“问题

一开始在网上找了一下,设置了两个内核参数: net.ipv4.ip_conntrack_max = 655360 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 后来发现 net.ipv4.ip_conntrack_max = 655360 似乎不起作用, /proc/sys/net/ipv4/netfilter/ip_conntrack_count 达到65***个,就又出现丢包现象。于是加上 xen 关键字再找了一下,发现还有另外一个参数: bridge-nf-call-iptables 需要关闭。 echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables //在 bridge 上关闭 netfilter 功能 执行之后 /proc/sys/net/ipv4/netfilter/ip_conntrack_count 开始明显减少。