nginx 记录的一些

1、正则表达式匹配
区分大小写匹配
~* 不区分大小写匹配
!和!*分别为区分大小写不匹配及不区分大小写不匹配
^ 以什么开头的匹配
$ 以什么结尾的匹配
转义字符。可以转. * ?等
  • 代表任意字符
    image
    image

2、文件及目录匹配
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行

3、location
image

4、限流模块
并发链接
limit_conn_zone $binary_remote_addr zone=addr:10m;
并发请求
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;
并发请求先于并发链接
如:
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;
server {
server_name localhost;
#root html/;
#error_log logs/myerror.log info;

    location /limit {
            limit_conn_status 500;
            limit_conn_log_level  warn;
            #limit_rate 50;
            limit_conn addr 1;
            limit_req zone=one burst=3 nodelay;
            #limit_req zone=one;
    }

}

5、重定向
rewrite语法格式及参数语法说明如下:
    rewrite            [flag];
    关键字      正则        替代内容          flag标记
 
    关键字:其中关键字error_log不能改变
    正则:perl兼容正则表达式语句进行规则匹配
    替代内容:将正则匹配的内容替换成replacement
    flag标记:rewrite支持的flag标记
 
flag标记说明:
last  #本条规则匹配完成后,继续向下匹配新的location URI规则
break  #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect  #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent  #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

6、nginx热升级
1、热升级只是替换二进制文件
先备份当前版本的二进制文件
2、编译新版本nginx二进制文件,并替换原来的二进制文件
3、发送信号 kill -USR2 pid
4、ps 查看nginx进程 发现有两个master进程
5、kill -WINCH nginx

7、日志切割
reopen

8、Nginx stream模块,实现代理转发

stream配置

stream {
server {
listen 2333;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 192.168.1.20:3306;
}
}

9、upstream 配置
nginx有个默认参数,默认:fail_timeout为10s,max_fails为1次。 就会有10s的时间不可用
所以当超时有失败是 会等待10s 才能重新访问
如果发现后端异常,在单位周期为fail_timeout设置的时间,中达到max_fails次数,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时常为fail_timeout)再一次去请求,判断是否连接是否成功。如果成功,将恢复之前的轮询方式,如果不可用将在下一个周期(fail_timeout)再试一次。

posted on 2022-05-17 14:24  每天进步一点点点点点  阅读(20)  评论(0编辑  收藏  举报