自行构建RPM仓库
有时候我们可能会需要自行编译RPM包,关于如何编译RPM包,可以查看呉真的这篇博文,当有了RPM包后,我们可能会需要分发到多台服务器上去,如果采用手工传输的方法,不免有些麻烦。这时可以自行搭建一个RPM仓库,使用yum/dnf一键安装自行编译的RPM包。
CentOS最容易被人诟病的一个问题便是软件包过于陈旧,经常无法使用某些实用的新特性,当然这也是为了稳定而做的考虑。为了使用某些新特性,有时候我们不得不重新编译新版本的软件以使用,而当你需要在多台服务器上重新部署时,这就显得非常麻烦。一个好的办法便是自行构建一个RPM包,然后通过RPM仓库的形式分发,如此每台服务器便可使用基于RPM的包管理软件yum/dnf,安装管理新版本软件包。
Brotli是Google推出的一个新型压缩算法,与传统的gzip相比可以大幅提高压缩率,目前各大浏览器Chrome/Firefox/Opera均已支持Brotli算法。但是目前Nginx官方并没有默认集成Brotli算法,还需要手工编译以开启Nginx对Brotli算法的支持。呉真经过寻找后,发现Nginx Plus以及GetPageSpeed Service提供了预编译好的Brotli动态模块,但是这两者都是需要收费的商业服务。
由于拒绝中共的内容审查,Google在2010年退出中国市场后,中文的搜索引擎一直处于无人维护状态,这使得一大批垃圾采集站,以及百度知道之类的高权重垃圾站,经常占据搜索结果前列的结果。呉真无意中发现了一款Chrome插件——uBlacklist,可以完美的解决这个问题,这里是Chrome应用商店直达链接。
GoAccess是一个Web服务器访问日志分析工具,可以通过CLI查看分析报告,或生成报告网页,更直观的分析。这里有一个GoAccess Demo,是关于呉真的博客的日志分析报告,是不是非常的酷炫。
Nginx的ngx_http_sub_module
模块可以很方便的实现:在返回资源时动态替换某些关键字。但是这个模块默认并没有启用,在编译时需要手动添加--with-http_sub_module
编译参数。要查看当前Nginx是否集成该模块,可以使用如下命令:
1 |
nginx -V 2>&1 | grep -q http_sub_module && echo "ok" |
呉真是最早一批的小牛M1车型车主,最近呉真的小牛M1里程突破了一万公里,于是决定写一篇体验感受,记录一下使用中的优缺点。
基数排序是一个经典的非比较排序算法,其基本思路为将待排序列分配至各个桶,再重新组合,达到排序的目的。在这里提出一种基于16进制的分配法,每一轮有0x0~0xf
共16个桶,重复分配8次,可以达到整型排序的目的。而负数在计算机内部使用其补码表示,因此在最后一趟收集的过程中,先收集0x8~0xf
桶,再收集0x0~0x7
桶,即可顺利的完成排序。
众所周知,千兆以太网标识的传输速度是1.0 Gbps
,那么在实际传输的过程中,能够达到的最大传输速度又是多少呢?这篇文章结合理论计算及实际测试告诉你答案。