自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 5.nginx的keepalive和pipe

小张当上了村里的邮差,每日带着村民的信件到nginx帝国,傍晚带着大量的回信回到村子。小张去了师傅家里,师傅听了小张讲述的已经逐渐熟悉了的server_name匹配顺序和规则,又从房间拿出了一些新的工具牌。nginx协议http 1.0和http 1.1是支持长连接的。http基于tcp协议之下,一次请求,需要建立tcp链接,而tcp链接是需要三次握手进行确定,结束请求需要四次交互。这种方式nginx需要耗费资源,时间开销都会影响整体速度。而如果知道请求头和响应体的长度,我们是可以在在一个链...

2020-11-12 22:27:20 130

原创 4.nginx的server_name正则匹配

有了default_server,小张心里松了一口气,不用担心server_name写错而白跑一趟了。但是要是Nginx没有设置default_server呢?老王:”如果没有设置,那么我们入口初开始,根据端口号8888找到的第一个就是默认default_server“。_代表无效的域名,不会与任何真实的server_name相交。”“匹配没有传递Host头信息的请求。 server { server_name ""; # List port

2020-11-12 21:52:51 1025

原创 3.nginx的特殊server_name及匹配

听了server_name匹配顺序,而最重要的正则匹配自己却一无所知,羞愧的想把它们全部塞到脑壳里充实自己,不过当前还是先听师傅的先把地址记清楚吧。跟着师父边走边记。很快,小张便发现了不对劲,街上竟然有两家的府衙门口都是wyc.com,怎么会有一模一样的呢?根据师傅前面讲的server_name匹配顺序,这两个一样,后面的那个根本不会被匹配到的,是写错了吗?还是备用的?小张疑惑的问。“虽然他们server_name是一样的,但是还有一个重要的标志端口号port,而他们的端口号并不一样,接受的请求并.

2020-11-12 21:31:17 494 2

原创 nginx的server_name匹配顺序

小张和师父边走边聊,很快的,一座雄伟的都城便出现在了师徒两人的面前,没有流连于帝都的繁华,他们先来到了处理全国各地事务的“行政街”。有师傅的指引,小张到了一个府衙门口将信件交给了官差,很快便拿到了处理结果的回信。没想到处理的这么快,好奇之余加上师父之前给自己讲的nginx处理机制,便想要更加深入了解Nginx内部结构。老王告诉小张,国家每隔几年就会选拔优秀的邮差进入中央系统工作。而想要当一名优秀的邮差,准确地判断服务器名然后投递到对应的处理业务的“府衙”是一项必备技能,也是选拔考试...

2020-11-12 21:17:14 357

原创 1.初识nginx

​在一个遥远的乡村发生了一件事,村里的邮差老王要退休,同时宣布小张成为新一任的邮差,继续为村民服务。这里的村民生活的nginx帝国地域辽阔,人口众多。帝国和百姓沟通的媒介就是各村的邮差。村民平时遇到问题只需要交给邮差,国王就会迅速将处理 a结果交由邮差带回。这天村民李二将一张名为”https://xxx.com/abc?name=li“的凭条交给了小张,在师父老王的陪同下开始了继任工作以来的第一次任务。小张了解到各村都有大量的人去帝国办理事情,将行李包里装的满满当当。正在为自己准备充分而心里暗喜时,却.

2020-11-11 23:46:09 117

原创 git使用

初次创建cd /homegit init //初始化git add <file> //添加文件到暂存区git commit -m "提交信息" //把暂存区的内容提交到当前分支git status //查看状态git diff //查看文件的区别撤销和删除git checkout --filename //工作区的修改撤销git reset HEAD filanam

2016-05-15 04:55:11 343

转载 php和lua的变量作用域

感觉lua宽松的很多,函数外部定义的变量,函数内部依然可以访问。但是函数内部定义的变量。函数内部定义的变量,在函数外部的结果为nil.local a = 111local function test() print(a) local b = a+1 return bend print(b)print(test())结果:nil111112[Finished in

2016-05-03 02:49:10 458

原创 lua和php的基本数据类型

功能 lua php 功能 true和false boolean boolean true和false 代表什么都没有 nil null 空 字符串型 string string 字符串型 函数,lua的第一类值 function integer 整型 内部以double表示 number float/double

2016-04-27 01:01:23 569

原创 lua常见的报错

lua本身很宽松,很少报错。经常出错的也就是那个表了,把自己遇到的常见的错误记下来。local a = {b=1,c=2}local a.d = 3for k,v in pairs(a) do print(k,v)end unexpected symbol near '.'已经定义的table赋予新的,不能重复家local了。local a = {b=1,c=2,{e=4}}

2016-04-26 01:53:28 2874

原创 关于OpenResty的redis

具体的redis操作参照文档: 地址get在get方法中,我一直qv不到get的数据,才发现是理解有问题。 local ok, err = red:connect("127.0.0.1", 6379) if not ok then ngx.say("failed to connect: ", err) return end ok, err = r

2016-04-22 17:36:23 901

原创 高性能服务器

关于服务器优化的很多东西,在代码中都有了封装或者相应的函数可使用。但是一些基础知识掌握的越深越熟悉更好。看了书上讲解的觉得很好,但是很详细的我并没有记住,基本概念做一下备注,方便查询和做相应的深入了解。池服务器启动之初就完全创建并初始化的静态资源分配,请求过来时需要的相应的资源就从池中获取,因为分配资源的系统调用是很好资源的,处理完后放入池中。避免了服务器的频繁调用。内存池,线程池,进程池,连接池。

2016-04-21 23:22:45 313

原创 关于nginx的内置变量

关于nginx的内置变量在OpenResty中,经常遇到nginx的内置变量,当时记住了,过一段时间在看到又感觉陌生无比。或者想不起来,或者自己也不确定,我在网上找了找然后在测试了一下,方便以后直观的查看。nginx支持一些内建变量,与Apache使用的变量相一致,一些变量代表了 客户端请求头部的一些字段。入$http_user_agent $http_cookie等等,由于这些变量会在请

2016-04-19 15:05:00 763

原创 关于lua的#

以前一直觉得#能判断数组型的table和字符串的长度,我以为数字的长度也可以判断,遇到了错误。local a = {}local b = {"a","b"}local c = ""local d = "abc"print(#a)print(#b)print(#c)print(#d)0203[Finished in 0.2s]结果可以发现空table和数组型table,字符串

2016-04-17 15:08:39 814

原创 lua string库模式匹配

print(string.find("12ab","%a%a"))print(string.find("12ab","(%a%a)"))print(string.find("12ab","[1-3]([1-3])(%a%a)"))结果:3 4 -- 简单的模式匹配3 4 ab -- 用[]创建字符集,"-"为连字符,"^"表示字符集的补集1 4 2 ab --

2016-03-28 15:17:25 456

原创 lua一些容易注意点

local和面向对象local x = {a=1}x.b = 2 -- 不能加local,否则错误:unexpected symbol near '.'print(x.b)local bird = {canfly = true}function bird:new() -- 不能加local,理由同上面,作用域在bird local b = {} setmetatab

2016-01-29 11:00:19 692

原创 nginx的变量和配置指令

nginx变量说明看了好多介绍nginx变量和配置的博客,春哥写的太好了,虽然春哥说了不要读者转载,文章内容很多,我简单的写出了一部分自己局的好的,以后会经常用的写下来,例子也会都测试一下,反正没人会看,万一被人看到,这里是春哥的原作地址:春哥的新浪博客 和春哥维护的OpenResty官网书的地址nginx变量简介Nginx的配置文件使用的就是一门微型的编程语言,变量说白了就是存放“值”的容器

2016-01-05 02:27:10 10320

转载 nginx配置location

语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。~ 开头表示区分大小写的正则匹配~*  开头表示不区分大小写的正则匹配!~和!~*分

2015-12-29 19:35:00 404

转载 保存的文章

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:阿猫链接:https://www.zhihu.com/question/20511233/answer/24260355来源:知乎一开始大家想要同一时间执行那么三五个程序,大家能一块跑一跑。特别是UI什么的,别一上计算量比较大的玩意就跟死机一样。于是就有了并发,从程序员的角度可以看成是多个独立的逻

2015-12-17 11:05:20 494

原创 nginx+lua的函数

ngx.var.uri和ngx.var.hostIf request URL is test.com/gifts.If i am using ngx.var.urioutput is /gifts/expected output is test.com/giftsngx.say(ngx.var.host .. '/' .. ngx.var.uri)

2015-11-25 01:46:54 819

原创 lua高级

生产者-消费者function producer() return coroutine.create( function (salt) local t = { 1, 2, 3 } for i = 1, #t do salt = coroutine.yield(t[i] + salt) en

2015-11-25 01:42:33 458

原创 lua遇到的错误

table插入一个local t = {a=1, b=2, c=3}-- table.insert(t,"d=4") --相当于插入一个字符串,并不是hashlocal m = {} --直接赋值m.d报错,需要先声明m为一个tablem.d=4t["d"] = 5 --t.d和t["d"]一个意思,但是前面不能加local,否则报错print(t.d)print(m.d)---

2015-11-22 00:34:57 690

翻译 nginx的请求处理机制

nginx服务器的与众不同,不同之处体现在模块化设计,另一方面体现在客户端请求的处理机制上。1.多进程方式

2015-09-11 23:33:41 334

原创 两种方式截取字符串

使用string.gmatchlocal plan_id = "1,2,3,4,55,66"local match = string.gmatch( plan_id,"%d+" )local plan_ids = {}for v in match do table.insert(plan_ids,v)endprint(#plan_ids)print(plan_ids[2])6 2使用st

2015-08-29 18:44:36 545

原创 api

api函数get_db_node(tables,b_id,is_read)input:tables, b_id,is_read output:string explain:传入id的值,如果是单表就返回一个字符串的表名,如果是多表,则对id对10取余,返回10张表的其中一个。 eg: db_node_name = get_db_node(config.db_business_range,b

2015-08-13 22:36:16 391

原创 lua学习--记录(2)

1.lua函数可以返回多个返回值,在return后要返回的值得列表即可返回多值2.lua总是调整函数返回值的个数去适应调用环境,当作为一个语句调用函数时,所有返回值被忽略3当作为表达式调用函数,有以下几种情况:a.当调用作为表达式的最后一个参数或者仅有一个参数时,根据变量的个数函数尽可能多的返回多个值,不足的补nil,超出舍去b.其他情况,函数调用仅仅返回第一个值4.函数调用作

2015-06-29 09:58:52 325

转载 lua学习--记录

function fact(n)if n == 0 thenreturn 1elsereturn (n * fact(n-1))endendprint("enter a number:")a = io.read("*number")print(fact(a))在终端中不要进入lua命令模式,直接敲lua D:\lua、hello.lua,即可运行

2015-06-26 10:02:55 340

转载 write和read

#include  #include  #include  #include  #include  #define MSG_TRY "try again\n"  int main(void) {  char buf[10]; int fd, n;  fd = open("/dev/tty", O_RDONLY|O_NONBLOCK);  if(fd

2015-06-25 18:08:38 534

原创 lua学习--特殊字符

local a = {"a","b","c","d","e","f"}-- local b = table.concat(a,"@")-- print(b)table.insert(a,"w") 不能赋值给一个表,返回值for k,v in ipairs(a) doprint(k,v)end特殊字符:在模式匹配中有一些特殊字符,他们有特殊的意义,

2015-06-25 15:47:19 10056

原创 lua学习--冒泡排序和保存奇数

--1到100的奇数存入文件--[[local file = io.open("a.txt","a")assert(file)for i = 1,100,1 doif i%2 ~= 0 thenfile:write(i)file:write(",")endend]]--table排序--[[local bubble = {1,8,4,7,

2015-06-25 09:56:48 1027

转载 输入倒序

#include#define M 20void fun(int *x,int n){    int *p,m=n/2,*i,*j;    i=x;    j=x+n-1;    p=x+m;    for(;i    {        int t=*i;        *i=*j;        *j=t;    }}void main

2015-06-21 19:48:13 537

空空如也

空空如也

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

TA关注的人

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