鼎鼎知识库
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

06HTTP模块.md 2.0KB

配置块的嵌套

http {
	upstream {}
	split_clients {}
	map {}
	geo {}
	server {
		if() {}
		location {
			limit_except{}
		}
		location {
			location {}
		}
	}
	server {
	
	}
}

指令继承,由内到外,向上覆盖

server {
	listen	8080;
	root /home/geek.nginx/html;
	access_log logs/geek.access.log main;
	location /test {
		root /home/geek/nginx/test
		access_log logs/access.tet.log main;
	}
	location /dlib {
		alias dlib;
	}
	location / {}
}

接受请求内部处理机制

操作系统内核→事件模块→HTTP模块

HTTP模块请求处理

接受URI→分配请求内存池→状态机解析请求行→分配大内存→状态机解析请求行→标识URI→状态机解析header→分配大内存→标识header→移除超时定时器→开始11个阶段的http请求处理

正则表达式

元字符

代码 说明
. 除了换行符之外的任意字符
\w 字母、数字、下划线、汉子
\s 空白
\d 数字
\b 单词的开始或结束
^ 字符串开始
$ 字符串结束

重复

代码 说明
* 重复零次或很多次
+ 重复一次或很多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多
{n,m} 重复n到m次
  • \:取消元字符的特殊含义
  • ()分组与取值

server_name指令

指令后可以跟多个域名,第一个是主域名

*表示泛域名:server_name *.darren.tech
正则表达式之前加~前缀:server_name www.darren.tch ~www\d+\.darren\.tech$

HTTP请求处理的11个阶段

  • POST_READ
  • SERVER_REWRITE
  • FIND_CONFIG
  • REWRITE
  • POST_REWRITE
  • PREACCESS
  • ACCESS
  • POST_ACCESS
  • PRECONTENT
  • CONTENT
  • LOG

location的匹配规则