- 博客(34)
- 资源 (8)
- 收藏
- 关注
原创 mysql Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s)问题处理...
Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 0 failed executing transaction 'ANONYMOUS' at master log , end_log_pos...
2019-08-30 15:53:00 897 1
原创 openresty开发系列29--openresty中发起http请求
openresty开发系列29--openresty中发起http请求有些场景是需要nginx在进行请求转发用户浏览器请求url访问到nginx服务器,但此请求业务需要再次请求其他业务;如用户请求订单服务获取订单详情,可订单详情中需要返回商品信息,也就需要再请求商品服务获取商品信息;这样就需要nginx需要有发起http请求的能力,而不是让用户浏览器再次请求商品信息nginx服务发起ht...
2019-08-30 14:34:00 2663
原创 openresty开发系列30--openresty中使用http模块
OpenResty默认没有提供Http客户端,需要使用第三方提供的插件我们可以从github上搜索相应的客户端,比如https://github.com/pintsized/lua-resty-http安装方法:将 lua-resty-http/lib/resty/ 目录下的 http.lua 和 http_headers.lua 两个文件拷贝到 /usr/local...
2019-08-30 14:34:00 566
原创 openresty开发系列28--openresty中操作mysql
openresty开发系列28--openresty中操作mysqlMysql客户端 应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢? 默认安装OpenResty时已经自带了该模块。案例,mysql数据库的常用操作,编辑testmysql.lua# centos7中安装mariadb# yum install -y maria...
2019-08-30 14:01:00 448
原创 openresty开发系列27--openresty中封装redis操作
openresty开发系列27--openresty中封装redis操作在关于web+lua+openresty开发中,项目中会大量操作redis,重复创建连接-->数据操作-->关闭连接(或放到连接池)这个完整的链路调用完毕,甚至还要考虑不同的 return 情况做不同处理,就很快发现代码中有大量的重复推荐一个二次封装的类库-------------------------...
2019-08-30 13:53:00 943
原创 openresty开发系列26--openresty中使用redis模块
openresty开发系列26--openresty中使用redis模块在一些高并发的场景中,我们常常会用到缓存技术,现在我们常用的分布式缓存redis是最知名的,操作redis,我们需要引入redis模块 require "resty.redis";我们现在做个可以操作redis进行赋值,读值的案例一)连接redis服务器---定义 redis关闭连接的方法local function...
2019-08-30 11:59:00 687
原创 openresty开发系列25--openresty中使用json模块
openresty开发系列25--openresty中使用json模块web开发过程中,经常用的数据结构为json,openresty中封装了json模块,我们看如何使用一)如何引入cjson模块,需要使用requirelocal json = require("cjson")json.encode 将表格数据编码为 JSON 字符串格式:jsonString = json.encode...
2019-08-30 11:54:00 1931
原创 openresty开发系列24--openresty中lua的引入及使用
openresty开发系列24--openresty中lua的引入及使用openresty 引入 lua一)openresty中nginx引入lua方式 1)xxx_by_lua --->字符串编写方式 2) xxx_by_lua_block ---->代码块方式 3) xxx_by_lua_file ---->直接引用一个lua脚本文件我们案例中使用内容处...
2019-08-30 11:52:00 1309
原创 openresty开发系列23--lua面向对象
openresty开发系列23--lua面向对象面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。java,c++,.net等都支持面向对象面向对象特征1) 封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。2) 继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存, 而新功能...
2019-08-30 11:19:00 180
原创 openresty开发系列22--lua的元表
openresty开发系列22--lua的元表举个例子,在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。那如何计算两个table的相加操作a+b?local t1 = {1,2,3}local t2 = {4,5,6}local t3 = t1 + t2 ----> {1,2,3,4,5,6}类似java的一些操作...
2019-08-30 11:15:00 160
原创 openresty开发系列21--lua的模块
openresty开发系列21--lua的模块从lua5.1开始,Lua 加入了标准的模块管理机制,Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。一)模块定义模块的文件名 和 模块定义引用名称要一致-- 文件名为 model.lua-- 定义一个名为 mode...
2019-08-30 10:58:00 385
原创 openresty开发系列20--lua的时间操作
openresty开发系列20--lua的时间操作在 Lua 中,函数 time、date 和 difftime 提供了所有的日期和时间功能。在 OpenResty 的世界里,不推荐使用这里的标准时间函数,因为这些函数通常会引发不止一个昂贵的系统调用,同时无法为 LuaJIT JIT 编译,对性能造成较大影响。推荐使用 ngx_lua 模块提供的带缓存的时间接口,如 ngx.today,...
2019-08-30 10:57:00 648
原创 openresty开发系列19--lua的table操作
openresty开发系列19--lua的table操作Lua中table内部实际采用哈希表和数组分别保存键值对、普通值;下标从1开始不推荐混合使用这两种赋值方式。local color={first="red", "blue", third="green", "yellow"}print(color["first"]) --> output: re...
2019-08-30 10:18:00 785
原创 openresty开发系列18--lua的字符串string操作
openresty开发系列18--lua的字符串string操作string的相关操作1)string.upper(s)接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串。print(string.upper("Hello Lua")) -->output HELLO LUA2)string.lower(s)接收一个字符串 s,返回一个把所有大写字母变成小写字母的字...
2019-08-30 10:14:00 2501
原创 openresty开发系列17--lua中的正则表达式
与其他脚本语言不同的是,Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配。主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lua标准库加在一起都大。权衡之下,Lua中的模式匹配的实现只用了500行代码,当然这意味着不可能实现POSIX所规范的所有更能。然而,Lua中的模式匹配功能是很强大的,...
2019-08-29 15:11:00 343
原创 openresty开发系列16--lua中的控制结构if-else/repeat/for/while
openresty开发系列16--lua中的控制结构if-else/repeat/for/while一)条件 - 控制结构 if-elseif-else 是我们熟知的一种控制结构。Lua 跟其他语言一样,提供了 if-else 的控制结构。1)单个 if 分支 型if 条件 then --body end条件为真 ,执行if中的body...
2019-08-29 15:04:00 617
原创 openresty开发系列15--lua基础语法4表table和运算符
openresty开发系列15--lua基础语法4表table和运算符lua中的表table一)table (表)Table 类型实现了一种抽象的"关联数组"。即可用作数组,也可以用作map。lua中没有数组和map,都是用table这个类型--数组java int[] intArr = new int[]{1,2,3,4,5,6};intArr[0]intArr[1]--m...
2019-08-29 14:59:00 396
原创 openresty开发系列14--lua基础语法3函数
openresty开发系列14--lua基础语法3函数一)function (函数)有名函数:optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separa...
2019-08-29 14:56:00 199
原创 openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍一)boolean(布尔)布尔类型,可选值 true/false;Lua 中 nil 和 false 为"假",其它所有值均为"真"。比如 0 和空字符串就是"真";local a = truelocal b = 0local c = nilif a then print("a") -->outp...
2019-08-29 14:53:00 270
原创 openresty开发系列12--lua介绍及常用数据类型简介
openresty开发系列12--lua介绍及常用数据类型简介lua介绍 1993 年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro in Brazil)诞生了一门编程语言,发明者是该校的三位研究人员,他们给这门语言取了个浪漫的名字——Lua,在葡萄牙语里代表美丽的月亮。事实证明她没有糟蹋这个优美的单词,Lu...
2019-08-29 14:24:00 247
原创 openresty开发系列11--openresty的api入门
openresty开发系列11--openresty的api入门1)ngx_lua模块的hello world编辑nginx下conf配置文件nginx.conf# vi nginx.conf在server模块加上location /helloworld { default_type text/html; content_by_lua 'ngx.say("hello worl...
2019-08-29 14:16:00 246
原创 openresty开发系列10--openresty的简单介绍及安装
openresty开发系列10--openresty的简单介绍及安装一、Nginx优点十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏多Nginx设计为一个主进程多个工作进程的工作模式,每个进程是单线程来处理多个连接,而且每个工作进程采用了非阻塞I/O来处理多个连接,从而减少了线程上下文切换,从而实现了公认的高性能、高并发;因...
2019-08-29 14:09:00 258
原创 openresty开发系列4--nginx的配置文件说明
openresty开发系列4--nginx的配置文件说明Nginx基本配置Nginx的主配置文件是:nginx.conf,nginx.conf主要组成如下:# 全局区 有一个工作子进程,一般设置为CPU数 * 核数worker_processes 1; events { # 一般是配置nginx进程与连接的特性 # 如1个word能同时允许多少连接,一个子进程最大允许连...
2019-08-29 13:56:00 1060
原创 openresty开发系列3--nginx的平滑升级
openresty开发系列3--nginx的平滑升级nginx服务器从低版本升级为高版本,如果强行停止服务,会影响正在运行的进程。平滑升级不会停掉正在运行中的进程,这些进程会继续处理请求。但不会接受新请求,这些老的进程在处理完请求之后会停止。此平滑升级过程中,新开的进程会被处理。一)平滑升级进入nginx可执行程序的目录 # cd /usr/local/nginx/sbin/...
2019-08-29 12:00:00 640
原创 openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍...
openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍一、nginx的安装下载及编译安装1、Nginx下载:nginx-1.13.0.tar.gz,下载到:/usr/local/src[root@node5 src]# wget http://nginx.org/download/nginx-1.13.0.tar.gztar xf nginx-1.1...
2019-08-29 11:56:00 623
原创 openresty开发系列1--网关API架构及选型
微服务架构在项目中的应用越来越多,我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多数据,这些数...
2019-08-29 11:50:00 842
原创 openresty通过 Lua + Redis 实现动态封禁 IP
一)需求背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。二)设计方案实现 IP 黑名单的功能有很多途径:1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求;2、在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 ...
2019-08-27 18:01:00 951
原创 openresty版本的nginx+lua实现接口签名安全认证
一)需求背景现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全,我们先看看有哪些安全性的问题请求来源(身份)是否合法?请求参数被篡改?请求的唯一性(不可复制)二)为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证案例:我们通过给某 [移动端(app)] 写 [后台接口(api)] 的案例进行分析: 客户端: 以下简...
2019-08-27 15:26:00 3712 1
原创 eclipse中导入spring-boot框架的jar包方法
如下代码引入了spring-boot的包package openresty;import java.io.IOException;import java.security.GeneralSecurityException;import java.security.MessageDigest;import java.util.Date;import java...
2019-08-27 11:28:00 857
原创 openresty使用http模块
OpenResty默认没有提供Http客户端,需要使用第三方提供的插件我们可以从github上搜索相应的客户端,比如https://github.com/pintsized/lua-resty-http安装方法:将 lua-resty-http/lib/resty/ 目录下的 http.lua 和 http_headers.lua 两个文件拷贝到 /usr/local...
2019-08-23 19:55:00 1013 1
原创 percona mysql5.7进程出现大量unauthenticated user解决记录
现象:http://task.chinasoft.com.wx/所有任务能打开,我的任务打开很慢有些人能用,有些人不能用,数据库出现大量的未认证用户连接,连接数利用率超过70%重启nginx,apache,mysql没有用问题依旧Kill 掉cdn的推送延迟脚本,问题依旧后面不知道是否是重启 php-fpm 解决?未知# 批量kil...
2019-08-22 15:21:00 347
原创 centos7安装python3.6独立的virtualenv环境
centos7安装python3.6独立的virtualenv环境1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-dev...
2019-08-12 17:02:00 1156
原创 Zabbix3.4指定用户才能收到报警的配置
Zabbix3.4指定用户才能收到报警的配置1.下载python微信脚本#安装simplejsonwget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gzgit地址:...
2019-08-09 17:45:00 629
原创 centos和windows添加路由命令记录
# 默认路由做香港出口route add default gw 192.168.10.33route add default gw 192.168.10.1# 删除默认路由# route del default gw 192.168.10.33route add -net 1.1.1.0 netmask 255.255.255.0 gw 192.168.10.1windows添加路由切换...
2019-08-07 11:56:00 403
产品安全之道 安全测试理论与实践
2012-08-07
PHP 面向对象技术(全面讲解)
2012-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人