nginx 记录的一些
- 1、正则表达式匹配
- 区分大小写匹配
~* 不区分大小写匹配
!和!*分别为区分大小写不匹配及不区分大小写不匹配
^ 以什么开头的匹配
$ 以什么结尾的匹配
转义字符。可以转. * ?等
- 代表任意字符
2、文件及目录匹配
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
3、location
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标记
关键字:其中关键字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)再试一次。