自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

orangleliu 笔记本

lzz的编程之旅,技术,思考,分享,happy

  • 博客(553)
  • 资源 (5)
  • 收藏
  • 关注

原创 OpenResty 执行阶段的概念和用途

主要还是 Nginx 的执行阶段知识了,都是因为 OR 才会那么深刻, 它有些自己的阶段。主要还是参照 春哥的 Nginx 教程 请多读几遍,如果不清楚nginx的执行阶段就无法充分利用 openresty 提供的强大功能。罗列从上到下的顺序执行每个阶段。NGX_HTTP_POST_READ_PHASE: #读取请求内容阶段NGX_HTTP_SERVER_REWRITE_PHASE:

2017-01-12 01:19:55 4892

原创 OpenResty 操作cookies

在or中简单的使用cookies 复杂的操作请使用 [lua_resty_cookies](https://github.com/cloudflare/lua-resty-cookie)基本操作获取一个cookies叫做sessionlocal cookie_name = "cookie_session"ngx.say(ngx.var[cookie_name])设置 cookies ng

2017-01-12 01:14:29 13212

原创 javascript 代码风格指南

写代码就像写字一样,好看的大家都喜欢下面是几个不错的代码风格指南https://github.com/airbnb/javascript/blob/es5-deprecated/es5/README.md airbnb的https://google.github.io/styleguide/javascriptguide.xml google的https://github.com/fex-

2017-01-06 16:29:54 574

原创 [Centos7] bcc tools安装

作者 运维开发群 @军爷,bbc是什么? 请参考 Brendan大爷的博客 Linux 4.9’s Efficient BPF-based Profiler更新到最新 CentOS 7.3 1611yum update -ycat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core)安装elrepo内核rpm --import htt

2017-01-05 22:50:24 7064

原创 OpenResty修改Nginx默认autoindex页面

Nginx的autoindex 命令可以自动列出目录下的文件,一些网站用这个功能做文件下载,但是Nginx又没有提供这个页面的 自定义的功能,后来看到别人提及 ngx_openresty,才想到 body_filter 阶段可以修改 response 的请求内容,只要进行一些hacking就能完成这个需求啦。Use openresty to modify the page generated by

2017-01-02 16:34:32 3829

原创 Python logging 模块和使用经验

记录下常用的一些东西,每次用总是查文档有点小麻烦。 py2.7 日志应该是生产应用的重要生命线,谁都不应该掉以轻心有益原则级别分离日志系统通常有下面几种级别,看情况是使用FATAL - 导致程序退出的严重系统级错误,不可恢复,当错误发生时,系统管理员需要立即介入,谨慎使用。ERROR - 运行时异常以及预期之外的错误,也需要立即处理,但紧急程度低于FATAL,当错误发生时,影响了程序的正

2016-12-27 16:13:00 11946 3

原创 OpenResty 代理 Google Analytics 并cache 加速访问

GA统计非常灵活,可以定制自己的统计维度,还有API输出。然后呢,它的统计只需要两个请求就可以完成,本身也支持服务器上传统计信息(也允许修改 analytics.js, 虽然不推荐), 继续上次内网服务的统计问题, 这次改成GA统计(我这边国内访问其实也不慢),并且增加 `proxy_cache`。分析总之第一步都是要通过 抓包工具 来查看GA和浏览器的整个通信过程。1 https://www.g

2016-11-12 18:26:39 1742

原创 Python中使用rrdtool结合Django进行带宽监控

我们有个网关需要做下带宽监控,能获取这个数据的唯一方法就是登录到管理界面查看。然后咱就写了个模拟登录的爬虫,定时抓取数据用rrdtool存储,最后通过Django来展示。这里就涉及了python的rrdtool,还有django怎么生成rrdtool这两个事。rrdtool怎么使用的不细说了,比较好的教程是cu上的那个帖子,贴下部分代码,希望遇到类似需求的读者少走弯路。安装就是 pip insta

2016-10-18 17:56:25 3650

原创 Centos6.6上源码安装Nodejs V4版本

本来就是想在vps上装一个Ghost博客,这个博客依赖的是Nodejs,然后推荐的是V4版本。然后我就对着官网的步骤安装,发现根本没有Centos6 i386的资源了(64位的还是有的), 我只能在那个瘦小的vps上进行源码安装了,找了个源码安装的blog操作了下,发现gcc版本太低,Centos yum上最新的也只是4.4版的gcc。。后来在gist上找到了这个脚本。#!/bin/bash#No

2016-09-28 19:11:44 1243

原创 登录ssh时Host key verification failed错误

工作中总是测试不同的路由设备, 路由器的ip都是 192.168.111.1 ,ssh登录的时候总是出现这个错误。macos上,错误如下spawn ssh -p 22 root@192.168.111.1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICAT

2016-09-23 12:03:40 3186

原创 [openwrt] uci 的shell和lua接口

uci是openwrt上配置操作的接口,不管是自动化的shell脚本,还是使用luci来二次开发配置界面,都会用到这部分知识。shell接口文档地址 ,增删改查都有,这里简单使用下。下面的配置为例子root@xCloud:~# cat /etc/config/testconfig test 'abc'option test_var2 'value22'option test_var 'valu

2016-09-18 16:13:32 7057

原创 mysql5.6升级到5.7后Sequel Pro无法连接解决

因为装ntop,brew自动升级了本地的Mysql,结果升级完成之后,使用Sequel Pro连接总是报错,使用mysql 命令行工具就没有问题。OSX版本 10.11.5Mysql版本 5.6 升级到 5.7.14Sequel Pro 1.02 google找到了解决的办法mysql_upgrade -u root -pmysql.server restart帖子的出处,安装新版本之后还需

2016-09-01 11:04:27 3855

原创 基于WAMP的Crossbario 安装入门

简单学习和使用WAMP协议,Router 是crossbario, Client是Autobahn, 了解运作的流程。测试环境是Centos6 虚拟机一台 目录为 /data/wamp/ ,用的是Python 2的版本,主要就是参考文档(其他地方也没有什么资料)WAMP 协议的介绍,这个必须要看看,否则下面写的东西也没什么用了, 基于Websocket的上层协议crossbario Rou

2016-08-18 18:36:34 2114

原创 CentOS6 上OpenWRT交叉编译

目的不是为了编译固件,一个是编译可执行文件,放倒op的路由器上跑,另一个是安装一些开源软件折腾下(例如ss-lib) 路由设备信息erya@ERYA:~$ cat /proc/cpuinfosystem type : Atheros AR9341 rev 1machine : Atheros DB120 reference boardprocessor :

2016-08-17 12:19:06 4330

原创 [Redis]处理定时任务的2种思路

用redis完成类似 at 命令的功能,例如订单24小时后没有支付自动关闭,定时发邮件,主要说下任务生成之后怎么触发消费。使用 有序集合思路: 使用sorted Sets的自动排序, key 为任务id,score 为任务计划执行的时间戳,这样任务在加入sets的时候已经按时间排序,这样每隔1s(或者其他间隔)去取出sets顶部的数据,小于当前时间的可以通过pop取出来然后去执行。redis模拟

2016-07-26 17:48:46 24122 2

原创 [命令行] curl查询公网出口IP

不管是在家里还是办公室,或者是公司的主机,很多时候都是在内网中,也就是说很多都是通过 NAT上网的,有时候需要查询下出口的公网IP,如果有浏览器,可以用百度, google搜 ip 这个关键词得到公网IP,那要是在命令行下呢? 下面是运维开发群的大神们分享的几个接口,整理了下分享给大家。liuzhizhi@lzz-rmbp|logs # curl ipinfo.io{ "ip": "114.

2016-07-22 14:27:02 114706 7

原创 [Django] 单元测试小记

从前很少写单元测试了,特别是web应用。最近不知不觉喜欢起来这个事情了,发现单元测试对于软件的模块,正交性有很大促进作用,因为函数,模块写的不合理,单元测试写起来就麻烦的多呀。公司的项目一直都是用Django,所以写点django单元测试的小总结,记录为主,备查。测试的场景框架Django1.8 测试工具 unittest, 要记得给test设置一个独特的settings。测试请求 也就是测试整

2016-07-18 19:30:06 7480 2

原创 [前端]Emmet 基本语法快查

Emmet 是一种快速写html的语法,通过几个简单的缩写,就可以拓展成html标签,工作中写html多多少少会有一些,使用的语法都是基础语法,这里总结下最常用的几个,备查。 这个插件支持非常多的IDE和编辑器,值得学学。Emmet 文档-快速书写html的语法> 代表下一级标签(child)h2>h3>p>span展开<h2> <h3> <p><span></sp

2016-07-08 15:16:16 1744

原创 django-debug-tools 使用

用django开发很快也很容易,但是很多时候我们的经验并不是很足,就会给自己挖下很多坑,不管是性能问题,还是开发语言使用技巧问题都会给应用的稳定带来危害, 开发之后的调试和调优就显得很重要,今天就尝试使用django-debug-toolbar来给我们的开发增加更多的调试和监控。之前只是听说过,没有具体应用过。我这里是python1.6。 1.7的配置有点小改动,具体看文档。安装使用pip安装p

2016-05-27 10:00:24 5127

原创 Python和shell中Base64编码使用那些事

做开发第一个接触的编码方式就是Base64,当时是用url来传输一些参数,传输的两端会用Base64来编码和解码,保证数据不被url转义破坏。下面是 维基百科 Base64 中的介绍,其实自己实现起来也不是很麻烦。 Base64 是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base

2016-05-19 19:40:59 7588

原创 【Nginx】下载,请求限流限速,根据URL参数限速

这个场景是限制单个连接的下载速度,还有限制单个IP的连接数,或者单位时间内的请求数,实验环境 nginx1.9.x。 小例子为主,具体的细节请多看文档。限制下载速度location /download { limit_rate 128k; } #如果想设置用户下载文件的前10m大小时不限速,大于10m后再以128kb/s限速可以增加以下配内容,修改nginx.conf文件locat

2016-04-26 19:24:15 11672 1

原创 [Zabbix3.0 ]添加Nginx监控

通过Nginx的http_stub_status_module模块提供的状态信息来监控,所以在Agent端需要配置Nginx状态获取的脚本,和添加key信息等,然后在Server端配置Nginx的监控模板等。请根据自己情况调整,这里只做简单的参照。主要是使用Github这个项目的代码 zabbix-templatesAgent端系统是Centos6.x, Zabbix-agent是3.0版本, N

2016-04-10 17:40:37 9941

原创 [Zabbix3.0] 添加MySQL监控

zabbix3.0 server已经自带MySQL的模板了,只要修改agent端,然在server给主机添加模板就好了。Agent端操作/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 已经存在(自动安装的),还需要的是配置MySQL的用户密码信息在目录下 创建 .my.cnf文件[client]user=zabbixpassword=y

2016-04-08 19:51:25 5149

原创 Redis 协议为例谈简单的协议分析

怎样去研究一个协议的过程,协议的格式,好处,怎么样模拟发包等,下面是一个简单的过程记录。研究的步骤:协议相关的资料,RFC,官方文档等。弄清楚协议工作在4层还是7层,是二进制还是文本协议等抓包,通过分析数据包来真实的看到通信过程,另外一个就是自己实现时候方面调试看客户端或者服务端的源码,了解实现细节(如果你需要拆轮子和造轮子)总结下它的优缺点等1 协议信息尽量找到原始的资料和精辟的分析

2016-03-22 15:44:28 5118

原创 【Django】 gunicorn部署纪要

使用Gunicorn 来部署Django应用, 没有一步一步写怎么操作,简单记录下重要的点,方面以后查阅。 主要的方式还是Nginx反向代理到Gunicorn, Gunicorn wsgi来启动Django。特点Gunicorn是基于prefork模式的Python wsgi应用服务器,支持 Unix like的系统 采用epoll (Linux下) 非阻塞网络I/O 模型多种Worker

2016-03-21 23:28:25 8896

原创 openresty+websocket+redis simple chat

openresty 很早就支持websocket了,但是早期的版本cosocket是单工的,处理起来比较麻烦参见邮件列表讨论 websocket chat,后来的版本cosocket是双全工的,就可以按照这个讨论的方案来实现基于websocket的聊天,或者是push程序了,但是网络上没有找到一个具体一点的例子,于是自己写了个simple的例子。1 思路client的websocket连接到ope

2016-03-15 17:07:40 8466

原创 【nginx】4xx,5xx 保持自定义header

问题 nginx使用中,如果请求返回的状态code类似404或者50x这种,仍然返回自定义的header。分析和解决nginx文档中关于 add_header的部分 有这么一句 Adds the specified field to a response header provided that the response code equals 200, 201, 204, 206, 30

2016-03-07 16:30:41 3916 1

原创 【uWSGI】实战之Django配置经验

uWSGI 是应用服务器,实现了uwsgi, wsgi等协议,可以运行wsgi 应用uwsgi 是协议名Django配置下面是自己经常用的一个配置模板,基于1.9以上的版本使用的, 主要基于django应用[uwsgi]djangoproject=/home/www/portalchdir=%(djangoproject)#virtualenv = /home/robc/.virtuale

2016-03-02 17:20:39 4036

原创 【Python】模拟radius coa报文

Radius协议中网关设备NAS是client,实现radius协议的服务为服务端(例如freeradius),这种情况下radius server并不能主动给NAS发送信息。在 rfc3576 Dynamic Authorization Extensions to RADIUS 中定义了一种radius的拓展,叫做 Change-of-Authorization (CoA) ,通过这个协议就可以

2016-02-05 14:01:34 9068

原创 【freeradius3】安装和拓展需求

这次主要来看看 freeradius的安装,以及Python拓展的例子,还有计费字段根据厂家进行拓展。3.0版本的安装参考文章yum install libtalloc-develwget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.11.tar.gztar zxvf freeradius-server-3.0

2016-02-05 13:28:05 5448

原创 【freeradius】使用radclient调试radius协议

freeradius 自带了非常好的客户端程序 radtest, radclient 用来模拟和调试设备和通信过程。radtest多用于认证,radclient更为强大一些,认证,计费,coa都可以模拟,还可以自定义协议包非常强大。命令帮助这里大家自己看下就好了,非常容易理解。测试的时候用的都比较简单一些。radclient -hUsage: radclient [options] server

2016-02-03 16:36:01 14672 4

原创 【freeradius2.x】 安装和学习

虚拟机中centos 安装和学习 radius2 版本是2.2.x 的使用等知识安装为了测试方面,yum安装yum -y install freeradius*配置文件的位置是 /etc/raddb/ 编译安装可能在 /usr/local/etc/raddb# /etc/init.d/radiusd用法:/etc/init.d/radiusd {start|stop|status|resta

2016-01-31 11:27:00 2197

原创 新博客启用了!

前一段时间用hexo搭建了一个静态博客,用起来还挺清爽!所以以后会多在新博客写文章,当然csdn也会经常更新啦。新博客orangleliu notes地址 欢迎访问。

2016-01-29 14:49:49 1573 5

原创 [FreeRadius2]遇到问题记录

在学习FreeRadius中遇到的问题,和解决。radtest 没有响应radiusd 启动正常,测试如下命令不好使[root@orangleliu raddb]# radtest alice passme 127.0.0.1 100 testing123radclient:: Failed to find IP address for orangleliuradclient: Nothing

2015-12-10 17:32:34 3289

原创 【Python】Shell MD5使用的那些事

MD5 应该是用的非常多的算法,就自己使用经验说说吧。场景算法层面不多说了,维基百科,还有很多文章都有说明。主要用过的场景密码存储,现在基本没怎么有使用的了,毕竟破解容易了很多API校验,现在使用的也蛮多的,API双方都有一个私有key,把数据和key放到一起生成token,两边校验(注意的一点是对于unicode编码,一定要encode)文件校验,这个用的还挺多,大家不要总是忘了这一步,X

2015-12-07 11:57:45 2539

翻译 [Python]Flask构建网站分析应用

原文Saturday morning hacks: Building an Analytics App with Flask - 由orangleliu友情翻译 ,主要是通过埋点技术来实现web网页的统计分析需求几年前我曾今写过一篇 使用Cassandra构建分析服务 当时只是为了好玩写的,实际上 Cassandra 根本不适合我真正的需求,所以我决定写些简单的东西。 我很高兴宣布新的统计应用在过

2015-11-23 17:33:08 3542

翻译 [问与答]Python 中 __all__ 的作用 ?

你要是看Python的源码或者相关框架的源码,总是在 __init__.py 或者是源文件的开头看到一个 __all__ 变量的定义,今天就说说它的作用。问题出处Can someone explain all in Python?问题我越来越多的使用Python了,经常看到 __all__ 变量再各种 __init__.py 文件中,谁能解释为什么那么做呢?解答它是一个string元素组成的lis

2015-11-15 12:59:42 33215

原创 【测试】Gunicorn , uWSGI同步异步测试以及应用场景总结

最近使用uwsgi出了一些问题,于是测试下Gunicorn测试对比下环境一颗cpu 1g内存 Centos系统 Django作为后端应用,Gunicorn默认模式和异步模式,响应基本是无阻塞类型测试的request是一个加密操作,对url中的几个参数做一个ase加密说明:下面的模拟阻塞模式,类似于你的请求中有很多调用第三方api的场景,因为网络延迟导致响应比较长测试命令ab -n 1000

2015-10-20 12:24:06 9801 2

原创 【linux】mkfifo 命令创建命名管道实现进程之间通信

mkfifo 命令mkfifo命令创建一个FIFO特殊文件,是一个命名管道(可以用来做进程之间通信的桥梁)管道也是一种文件,一般是linux中的一个页大小,4k,管道数据一旦被读取就没了。管道是单方向mkfifo命令文档使用命名管道下面均是再OSX系统实验。创建管道liuzhizhi@lzz-rmbp|pipe # mkfifo log.pipe查看管道liuzhizhi@lzz-rmbp

2015-10-14 23:14:24 19900

原创 MySQL 5.6 & 5.7最优配置模板

原文地址Inside君整理了一份最新基于MySQL 5.6和5.7的配置文件模板,基本上可以说覆盖90%的调优选项,用户只需根据自己的服务器配置稍作修改即可,如InnoDB缓冲池的大小、IO能力(innodb_buffer_pool_size,innodb_io_capacity)。特别注意,这份配置文件不用修改,可以直接运行在MySQL 5.6和5.7的版本下,这里使用了小小的技巧,具体可看配置...

2015-10-13 13:26:51 998

Coroutines

python 携程相关的

2015-09-22

精通正则表达式英文版

Mastering_Regular_Expressions chm版本 不错

2013-03-29

fileupload的jar包

方面官网资源不好的下载 主要用于servlet3.0之前的版本,文件上传用的第三方类

2012-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除