自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (1)
  • 收藏
  • 关注

原创 docker 运行 memadmin

闲得没事,在docker里面跑了一个memadmin不说废话Dockerfile$ vim Dockerfile内容如下FROM eboraas/apache-phpRUN apt-get update && apt-get -y install php5-memcache && apt-get clean && rm -rf /var/lib/apt/lists/*ADD https://gi

2017-04-27 12:11:04 860

原创 openresty 应用打包并使用luajit编译lua代码实现简单加密

前面写了很多篇介绍openresty开发的文章,你是否已经开发了一些小程序? 当开发完一些应用,是否想着怎么打包? 出于某种原因,不想公开一些核心的模块源码?针对上面两点,有以下两个办法写个小脚本来打包尝试使用luajit实现对lua代码加密处理下面是代码package.sh#!/usr/bin/env bashrm -rf ./outmkdir -p out/app/logscp -

2017-02-26 23:58:56 3518

原创 nginx 日志分析及性能排查

最近一直在做性能排查,思路就是根据分析nginx日志,得到响应耗时的url、以及请求时间,再得到这段时间的请求量,并发量,分析是并发的原因,还是本身就比较慢,如果是应用本身的原因,只需要找到对应的代码,然后进行优化就好了我找到的几个原因,基本就是后端sql运行的比较多,单次访问看不出来,但是人比较多的时候就比较慢了,人少的时候20-200毫秒,人多的时候,200-6000毫秒,优化之后基本保持在几十

2017-02-23 14:53:44 734

原创 openresty 前端开发进阶二之https后端

在对接一些第三方系统的时候,经常会遇到https的问题,好比如做微信公众号的开发,接口基本都是https的,这个时候,很多人试着用http的那种方式来访问https,结果报错了,误以为lua不支持https,其实不是的,只需要配置一个证书即可,证书可以通过浏览器访问接口的url,然后通过浏览器导出这个网站所对应的pem证书,然后配置到nginx里面就行了,其他的调用方法跟http的类型,所用到的ht

2017-02-21 13:44:40 2197

原创 Ubuntu 一键安装openresty

最近一直在服务器上部署openresty,于是写了一个脚本,一键安装openresty,代码在github上面,有需要的拿走,喜欢请点个星星curl https://raw.githubusercontent.com/362228416/openresty-web-dev/master/install/install-block-browser.sh | sh -

2017-02-18 15:58:31 1043

原创 openresty 前端开发进阶五之cookie篇

这章主要演示怎么通过lua操作cookie操作cookie有两种方式,一种是直接设置响应头,另外一种是用lua-resty-cookie库(其实原理是一样的,只不过做了一点封装),这个库也是春哥写的,可以放心使用,下面我分别介绍一下两种方式怎么用读取cookie一(原生)print(ngx.var.http_cookie) -- 获取所有cookie,这里获取到的是一个字符串,如果不存在则返回nil

2017-01-26 21:31:44 4933

原创 openresty IP防火墙

为了保护站点安全,有时候我们需要一个web防火墙,来实现拦截过滤,在openresty里面其实很好做这个功能,下面我们简单实现一个黑白名单ip的功能mvc 中加上waf模块lite/mvc.lua-- waf beginlocal ret, waf = pcall(require, "waf") -- 安全引入rewrite模块,假如没有也不会报错if ret then local c_re

2017-01-26 16:39:44 1465

原创 openresty url重写

这一章主要介绍一下怎么用lua来进行url重写,其实通过nginx也可以完成url重写,但是重写规则比较复杂的时候,用nginx就没有那么方便了,用lua可以轻松搞定这里用到几个最核心的api就是ngx.redirect、ngx.execngx.redirect顾名思义,是执行重定向动作,重定向会导致url变更,返回302状态码,浏览器会重新发起一个新请求,到重定向后的url,用法很简单old u

2017-01-23 02:23:18 4810

openresty 前端开发轻量级MVC框架封装二(渲染篇)

#### 这一章主要介绍怎么使用模板,进行后端渲染,主要用到了[lua-resty-template](https://github.com/bungle/lua-resty-template)这个库,直接下载下来,放到lualib里面就行了,推荐第三方库,已经框架都放到lualib目录里面,lua目录放项目源码,比较好管理,可以知道那些是项目的,哪些是第三方库,可复用的下载解压到lual...

2017-01-11 00:50:07 183

原创 openresty 前端开发轻量级MVC框架封装二(渲染篇)

这一章主要介绍怎么使用模板,进行后端渲染,主要用到了lua-resty-template这个库,直接下载下来,放到lualib里面就行了,推荐第三方库,已经框架都放到lualib目录里面,lua目录放项目源码,比较好管理,可以知道那些是项目的,哪些是第三方库,可复用的下载解压到lualib目录之后,就算安装完成了,下面来试用一下,更详细的可以到github上面看文档conf/nginx.confw

2017-01-11 00:49:12 918

openresty 前端开发轻量级MVC框架封装一(控制器篇)

#### 通过前面几章,我们已经掌握了一些基本的开发知识,但是代码结构比较简单,缺乏统一的标准,模块化,也缺乏统一的异常处理,这一章我们主要来学习如何封装一个轻量级的MVC框架,规范以及简化开发,并且提供类似php所见即所得的能力## 统一入口通常来说一个mvc框架会有一个统一的入口点,类似于spring mvc的DispatcherServlet,会拦截所有的请求,也就是/,于是...

2017-01-10 22:48:34 157

原创 openresty 前端开发轻量级MVC框架封装一(控制器篇)

通过前面几章,我们已经掌握了一些基本的开发知识,但是代码结构比较简单,缺乏统一的标准,模块化,也缺乏统一的异常处理,这一章我们主要来学习如何封装一个轻量级的MVC框架,规范以及简化开发,并且提供类似php所见即所得的能力统一入口通常来说一个mvc框架会有一个统一的入口点,类似于spring mvc的DispatcherServlet,会拦截所有的请求,也就是/,于是我们可以得出我们的入口点conf/

2017-01-10 02:36:43 646

openresty 前端开发进阶一之http后端

#### 做前端开发,大多数情况下,都需要跟后端打交道,而最常见的方式则是通过http请求,进行通信。在openresty中,通过http跟后端整合通信的方式又很多种,各有各的好处,可以根据情况交叉使用## 1、直接proxy这种方式最简单,也是我们最熟悉的,直接配置一个反向代理,跟nginx的用法一致比如我们有一个后端服务,提供用户相关接口,是java写的,端口808...

2017-01-08 00:46:17 212

原创 openresty 前端开发进阶一之http后端

做前端开发,大多数情况下,都需要跟后端打交道,而最常见的方式则是通过http请求,进行通信。在openresty中,通过http跟后端整合通信的方式又很多种,各有各的好处,可以根据情况交叉使用1、直接proxy这种方式最简单,也是我们最熟悉的,直接配置一个反向代理,跟nginx的用法一致比如我们有一个后端服务,提供用户相关接口,是java写的,端口8080,为了简单起见,我直接在openresty里

2017-01-08 00:15:32 1403

openresty 前端开发入门六之调试篇

#### 大多数情况下,调试信息,都可以通过ngx.say打印出来,但是有的时候,我们希望打印调试日志,不影响到返回数据,所以系统打印到其它地方,比如日志文件,或者控制台这里主要用到一个方法就是ngx.log,这个方法可以将日志输出到error.log里面,支持多种级别消息,如下:```ngx.STDERRngx.EMERGngx.ALERTngx.CRITng...

2017-01-04 14:03:47 161

原创 openresty 前端开发入门六之调试篇

大多数情况下,调试信息,都可以通过ngx.say打印出来,但是有的时候,我们希望打印调试日志,不影响到返回数据,所以系统打印到其它地方,比如日志文件,或者控制台这里主要用到一个方法就是ngx.log,这个方法可以将日志输出到error.log里面,支持多种级别消息,如下:ngx.STDERRngx.EMERGngx.ALERTngx.CRITngx.ERRngx.WARNngx.NOTI

2017-01-04 13:59:01 1032

openresty 前端开发入门五之Mysql篇

openresty 前端开发入门五之Mysql篇#### 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户操作mysql主要用到了lua-resty-mysql库,代码可以在[github](https://github.com/openresty/lua-resty-mysql)上找得到而且上面也有实例代码由于官...

2017-01-04 00:00:35 129

原创 openresty 前端开发入门五之Mysql篇

openresty 前端开发入门四之Redis篇这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户操作mysql主要用到了lua-resty-mysql库,代码可以在github上找得到而且上面也有实例代码由于官网给出的例子比较基本,代码也比较多,所以我这里主要介绍一些怎么封装一下,简化我们调用的代码lua/mysql.lualocal mysql

2017-01-03 23:54:55 765

openresty 前端开发入门四之Redis篇

#### 这章主要演示怎么通过lua连接redis,并根据用户输入的key从redis获取value,并返回给用户操作redis主要用到了lua-resty-redis库,代码可以在[github](https://github.com/openresty/lua-resty-redis)上找得到而且上面也有实例代码由于官网给出的例子比较基本,代码也比较多,所以我这里主要介...

2017-01-03 10:41:18 170

openresty 前端开发入门三之JSON篇

#### 这章主要介绍一下,lua怎么返回一个json字符串,怎么把一个table转成json字符串,又怎么把一个json字符串转成json其实很简答,直接使用cjson库的encode、decode方法即可lua/hello.lua```local cjson = require "cjson"-- 先定义一个json字符串local json_str = '...

2017-01-03 10:36:54 139

原创 openresty 前端开发入门二

#### 这一章主要介绍介绍怎么获取请求参数,并且处理之后返回数据我们知道http请求通常分为两种,分别是GET,POST,在http协议中,GET参数通常会紧跟在uri后面,而POST请求参数则包含在请求体中,nginx默认情况下是不会读取POST请求参数的,最好也不要试图使改变这种行为,因为大多数情况下,POST请求都是转到后端去处理,nginx只需要读取请求uri部分,以及请求头...

2017-01-03 10:36:06 120

原创 openresty 前端开发入门四之Redis篇

这章主要演示怎么通过lua连接redis,并根据用户输入的key从redis获取value,并返回给用户操作redis主要用到了lua-resty-redis库,代码可以在github上找得到而且上面也有实例代码由于官网给出的例子比较基本,代码也比较多,所以我这里主要介绍一些怎么封装一下,简化我们调用的代码lua/redis.lualocal redis = require "resty.redis

2016-12-31 01:39:03 819

原创 openresty 前端开发入门三之JSON篇

这章主要介绍一下,lua怎么返回一个json字符串,怎么把一个table转成json字符串,又怎么把一个json字符串转成json其实很简答,直接使用cjson库的encode、decode方法即可lua/hello.lualocal cjson = require "cjson"-- 先定义一个json字符串local json_str = '{"name": "Bruce.Lin", "age

2016-12-31 00:58:41 4531

原创 openresty 前端开发入门二

这一章主要介绍介绍怎么获取请求参数,并且处理之后返回数据我们知道http请求通常分为两种,分别是GET,POST,在http协议中,GET参数通常会紧跟在uri后面,而POST请求参数则包含在请求体中,nginx默认情况下是不会读取POST请求参数的,最好也不要试图使改变这种行为,因为大多数情况下,POST请求都是转到后端去处理,nginx只需要读取请求uri部分,以及请求头由于这样的设计,所以获取

2016-12-31 00:32:37 591

原创 openresty 前端开发入门一

OpenResty ™ 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用

2016-12-30 00:44:04 696

openresty 前端开发入门一

OpenResty ™ 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 W...

2016-12-30 00:41:06 270

原创 shell 脚本手动制作nginx电子书

最近在看 Nginx开发从入门到精通,只有网页版的,看起来不是很方便,于是想把它做成电子版的pdf,网页有现成的接口,几行代码就搞定了,把每页的内容下载下来,然后输出到一个文件里面,由于内容是markdown格式,很容易就转成pdf了地址在这里 http://tengine.taobao.org/book/代码```#!/bin/bashfile="Nginx开发从...

2016-12-29 23:53:09 86

原创 shell 脚本手动制作nginx电子书

最近在看 Nginx开发从入门到精通,只有网页版的,看起来不是很方便,于是想把它做成电子版的pdf,网页有现成的接口,几行代码就搞定了,把每页的内容下载下来,然后输出到一个文件里面,由于内容是markdown格式,很容易就转成pdf了地址在这里 http://tengine.taobao.org/book/代码#!/bin/bashfile="Nginx开发从入门到精通.md"function do

2016-12-29 23:49:40 335

shell自动下载nginx日志文件到本地

#### 最近遇到一个情况就是服务器不响应了,nginx也不写日志,经查发现是日志文件太大多,磁盘满了,以前都是用脚本自动上传到OSS的,现在需要将log下载到本地,于是用shell写了一段脚本,然后放到crontab里面,每天凌晨把log下载下来shell 脚本```#!/bin/bashHOST="115.114.113.112"LOG_PATH="/usr/loc...

2016-12-28 17:27:18 338

原创 shell自动下载nginx日志文件到本地

最近遇到一个情况就是服务器不响应了,nginx也不写日志,经查发现是日志文件太大多,磁盘满了,以前都是用脚本自动上传到OSS的,现在需要将log下载到本地,于是用shell写了一段脚本,然后放到crontab里面,每天凌晨把log下载下来shell 脚本#!/bin/bashHOST="115.114.113.112"LOG_PATH="/usr/local/nginx/logs/"LOCAL_

2016-12-28 17:27:16 817

使用python自动生成docker nginx反向代理配置

#### 由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建、停止的时候,自动生成nginx反向代理,然后reload nginx 我的原则是尽量简单,轻量,内存占用少目标很明确,只要能监听到docker的容器启动/停止事件,即可网上查了...

2016-12-28 00:09:01 118

使用nginx管理docker容器

### 一直YY着想有一个基于web的docker管理器,市面上的都比较重,我只想要轻量一点的,于是想着自己做一个,直接部署在nginx里面,不占内存先说说原理,其实很简单,docker提供了一套socket接口,基于unix套接字,只要实现nginx能通过socket访问docker基本就上就OK了。于是想到了nginx + lua,由于服务器上有openresty,直接就拿来用...

2016-12-28 00:07:21 311

原创 使用python自动生成docker nginx反向代理配置

由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建、停止的时候,自动生成nginx反向代理,然后reload nginx我的原则是尽量简单,轻量,内存占用少目标很明确,只要能监听到docker的容器启动/停止事件,即可网上查了一下可以用docker events来

2016-12-27 00:38:42 665

原创 使用nginx管理docker容器

一直YY着想有一个基于web的docker管理器,市面上的都比较重,我只想要轻量一点的,于是想着自己做一个,直接部署在nginx里面,不占内存先说说原理,其实很简单,docker提供了一套socket接口,基于unix套接字,只要实现nginx能通过socket访问docker基本就上就OK了。于是想到了nginx + lua,由于服务器上有openresty,直接就拿来用了,通过lua-resty

2016-12-27 00:15:27 549

原创 openresty 前端开发序

还记得第一次尝试前后端分离的时候,是使用nginx + react 构建的spa应用,后端是java,主要处理业务逻辑逻辑部分,返回json数据,在nginx里面配置好html + js纯静态文件,再通过反向代理到java后端,解决跨域问题,然后使用ajax来进行交互,模型很简单,也很有效主要解决了几个问题一、独立,由于前后端分离,在开发的时候完全可以互相独立,所谓独立,其实就是说前后端是属于两个项

2016-12-09 11:45:31 1794

openresty 前端开发序

还记得第一次尝试前后端分离的时候,是使用nginx + react 构建的spa应用,后端是java,主要处理业务逻辑逻辑部分,返回json数据,在nginx里面配置好html + js纯静态文件,再通过反向代理到java后端,解决跨域问题,然后使用ajax来进行交互,模型很简单,也很有效主要解决了几个问题一、独立,由于前后端分离,在开发的时候完全可以互相独立,所谓独立,其实就是说前...

2016-12-09 11:45:00 161

原创 docker 打包python

最近用python写了一段爬虫程序,为了隔离其运行环境,易于分发,把项目打包成docker镜像DockerfileFROM python:2.7.12-alpineADD ./src /jobCMD ["python", "/job/main.py"]构建命令$ docker build -t job .运行$ docker run -d --name job job比较简单

2016-12-09 00:35:46 2535

docker 打包python

最近用python写了一段爬虫程序,为了隔离其运行环境,易于分发,把项目打包成docker镜像DockerfileFROM python:2.7.12-alpineADD ./src /jobCMD ["python", "/job/main.py"]构建命令$ docker build -t job .运行$ docker run -d --name j...

2016-12-09 00:35:00 107

原创 linux ssh远程登陆报警提醒

为了服务器安全,防止被入侵,除了加强密码之外,还可以监控服务器的登陆情况把登陆日志记下来,当然系统也会有记录,但不排除被人删掉,所以把数据发送到另外一台服务器比较保险,避免被删除在linux下面很简单,只需要在/etc/ssh/目录下面创建一个sshrc的文件,然后给它执行权限,那么在有人通过ssh远程登录这台服务器的时候,这段脚本就会被执行代码如下:#!/bin/bash#获取登录者的用户名u

2016-12-09 00:28:39 5109

linux ssh远程登陆报警提醒

为了服务器安全,防止被入侵,除了加强密码之外,还可以监控服务器的登陆情况把登陆日志记下来,当然系统也会有记录,但不排除被人删掉,所以把数据发送到另外一台服务器比较保险,避免被删除在linux下面很简单,只需要在/etc/ssh/目录下面创建一个sshrc的文件,然后给它执行权限,那么在有人通过ssh远程登录这台服务器的时候,这段脚本就会被执行代码如下:#!/bin/bash...

2016-12-09 00:28:00 473

极限编程.pdf

极限编程,一本阐述敏捷开发的数据,让你的开发更有效

2013-02-03

空空如也

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

TA关注的人

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