Nginx

正则

.            匹配除换行符以外的任意字符

\w         匹配字母或数字或下划线或汉字

\s          匹配任意的空白符

\d          匹配数字

\b          匹配单词的开始或结束

^           匹配字符串的开始

$           匹配字符串的结束

*            重复零次或更多次

+           重复一次或更多次

?           重复零次或一次

{n}        重复n次

{n,}       重复n次或更多次  

{n,m}    重复n次到m次

\            取消元字符的特殊含义

()           分组与取值

指令的合并

值指令(可以合并),继承规则向上覆盖,子盖父

1、root

2、access_log

3、gzip

动作指令(不可以合并)

1、rewrite

2、proxy_pass

Listen指令

listen  unix:/var/run/nginx.sockl

listen   127.0.0.1:8000;

listen   127.0.0.1;

listen   8000;

listen   *:8000;

listen   localhost:8000 bind;

listen   [::]8000 ipv6only=on;

listen   [::1];

server匹配顺序

1、 精确匹配

2、*在前的泛域名

3、*在后的泛域名

4、按文件中的顺序匹配正则表达式域名

5、default server

Http请求处理的11个阶段

Post_read              realip

Server_rewrite       rewrite

Find_config

rewrite                   rewrite

Post_rewrite 

Preaccess              limit_req,limit_conn

Access                   auth_basic,access,auth_request

Post_Acess

Precontent              try_files

Content                   index,autoindex,concat

Log                          access_log

获取用户真实IP,并使用-postread阶段

开启 Http头部 X-Forwarded-For  用于传递IP

开启Http头部 X-Real-IP 用于传递用户IP

基于变量使用,binary_remote_app, remote_addr

Rewrite模块-return指令-Rewrite阶段

server {
    server_name return.taohui.tech;
    listen 8080;
    root html/;
    error_page 404 /403.html;
    return 403;
    location /{
       return 404 "find nothing!";
     }
}
1. error_page 404 /404.html;
2. error_page 500 502 503 504 /50x.html;
3. error_page 404 =200 /empty.gif;
4. error_page 404 = /404.php;
5. location / {
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://backend;
}
6. error_page 403 http://example.com/forbidden.html;
7. error_page 404 =301 http://example.com/notfound.html;

Rewrite模块-rewrite指令-Rewrite阶段

Syntax:       rewrite   regex replacement[flag];

将regex指定的url替换成replacement这个新的url

当replacement以http://或者Https://或者$schema开头,直接返回302重定向

替换后的url根据flag指定的方式进行处理

flag

--last   用replacement这个URI进行新的location撇皮

--break      break指令停止当前脚本指令的执行,等价于独立的break

--redirect       返回302重定向

--permanent        返回301重定向

Rewrite_log,默认不打开,打开则需指定日志文件路径

 Rewrite模块-if指令-Rewrite阶段

检查变量为空,或者是否为0,直接使用,

将变量与字符串做匹配,=或者!=

与正则做匹配,大小写敏感  ~或者!~    大小写不敏感,~*或者!~*

检查文件,-f

检查目录,  -d

检查文件,目录,软连接是否存在    -e

检查是否为可执行   -x

Find_config模块-location

= :        精确匹配

^~:        匹配上后则不再进行正则表达式匹配

~           大小写敏感的正则匹配

~*          忽略大小写的正则匹配

location匹配顺序

= >  ^~ >  ~|~*  > 最长前缀匹配 >  / 

Preaccess模块-http_limit_conn_module

在http中,定义共享内存(包括大小),以及key关键字

limit_conn_zone  key zone=name:size;

限制并发连接数  limit_conn zone number;

限制发生的日志级别   limite_conn_log_level  info|notice|warn|error;

限制发生向客户端返回的错误码          limit_conn_status code;

限制访问速率   limit_rate   50k

Preaccess模块-http_limit_req_module

在http中,定义共享内存(包括大小),以及key关键字

limit_req_zone  key zone=name:size rate=rate(2r/m);每分钟只能请求两次

限制并发连接数  limit_req zone  [burst=number][nodelay]; burst默认为0;nodelay,对burst中的请求不再采用延时处理的做法,而是立刻处理

限制发生的日志级别   limite_req_log_level  info|notice|warn|error;

限制发生向客户端返回的错误码          limit_req_status code;

Access模块-http_access_module

顺序执行,先允许后拒绝比较合理。

 Access模块-http_auth_basic

扩展,安装httpd-tools,使用htpasswd -c /etc/nginx/authpass Hp

auth_basic   默认为关闭,开启后,添加内容,在请求头返回内容

auth_basie_user_file file;    添加密码文件

Access模块-http_auth_request模块

功能:想上游的服务器转发请求,若上游服务器返回的响应码是2xx,则继续执行,若上游服务返回的是401或者403,则将响应返回客户端

原理:收到请求后,生成子请求,通过反向代理技术把请求传递给上游服务器

--with-http_auth_request_module 默认为编译进nginx

 Precontent模块-ngx_http_try_files_module模块

功能:依次试图访问多个url对应的文件(由root或者alias指令指定),当文件存在时直接返回内容,如果所有文件都不存在,则按最后一个URL结果或者code返回

 Precontent模块-ngx_http_mirror_module模块

功能:处理请求时,生成子请求访问其他服务,对子请求的返回值不做处理-----默认编译进Nginx

mirror uri|off                   默认为关闭

mirror_request_body   on|off           默认为打开

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值