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模块
接受URI
→分配请求内存池→状态机解析请求行→分配大内存→状态机解析请求行→标识URI
→状态机解析header→分配大内存→标识header→移除超时定时器→开始11个阶段的http请求处理
元字符
代码 | 说明 |
---|---|
. | 除了换行符之外的任意字符 |
\w | 字母、数字、下划线、汉子 |
\s | 空白 |
\d | 数字 |
\b | 单词的开始或结束 |
^ | 字符串开始 |
$ | 字符串结束 |
重复
代码 | 说明 |
---|---|
* | 重复零次或很多次 |
+ | 重复一次或很多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多 |
{n,m} | 重复n到m次 |
\
:取消元字符的特殊含义()
分组与取值指令后可以跟多个域名,第一个是主域名
*表示泛域名:server_name *.darren.tech
正则表达式之前加~前缀:server_name www.darren.tch ~www\d+\.darren\.tech$
FIND_CONFIG
PREACCESS
PRECONTENT