系列文章目录
三、 nginx配置实践笔记<三>
二、nginx配置实践笔记<二>
一、基本认识
1.1 匹配操作符
~ 区分大小写(大小写敏感)匹配成功
~* 不区分大小写匹配成功
!~ 区分大小写匹配失败
!~* 不区分大小写匹配失败
^ 以什么开头的匹配
$ 以什么结尾的匹配
* 代表任意字符
1.2 常用正则
. : 匹配除换行符以外的任意字符
? : 重复0次或1次
+ : 重复1次或更多次
* : 重复0次或更多次
\d :匹配数字
^ : 匹配字符串的开始
$ : 匹配字符串的介绍
{n} : 重复n次
{n,} : 重复n次或更多次
[c] : 匹配单个字符c
[a-z] : 匹配a-z小写字母的任意一个
二、常用案例
2.1 示例如下(针对浏览器)
# 针对浏览器 不区分大小写匹配并 禁止访问Chrome浏览器。
location / {
if ($http_user_agent ~* chrome) {
return 503;
}
}
2.2 示例如下(针对文件和文件夹)
# 判断文件,文件夹
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
# 针对文件类型 设置某些类型文件的浏览器缓存时间 $代表结尾
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)$ {
# 缓存1小时
expires 1h;
}
# 针对文件夹
location /test/ {
return 403;
}
# 匹配到所有uri
location / {
}
2.3 示例如下(全局变量)
# 请求中的参数,如www.abc.com/test/hello?a=1&b=2的$args就是a=1&b=2
$args
# Nginx虚拟主机配置文件中的root参数对应的值
$document_root
# 当前请求中不包含指令的URI,如www.abc.com/test/hello?a=1&b=2的document_uri就是/test/hello,
# 不包含后面的参数 $uri 和$document_uri相同
$document_uri
# 主机头,也就是域名
$host
# 客户端的详细信息,也就是浏览器的标识,用curl -A可以指定
$http_user_agent
# 客户端的cookie信息
$http_cookie
# 如果Nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置,则显示0
$limit_rate
# 客户端的公网IP
$remote_addr
# 客户端的端口
$remote_port
# 请求资源的方式,GET/PUT/DELETE等
$request_method
# 当前请求的资源文件的路径名称,相当于是$document_root/$document_uri的组合
$request_filename
# 请求的链接,包括$document_uri和$args
$request_uri
# 请求的协议,如ftp、http、https
$scheme
# 客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等
$server_protocol
# 服务器IP地址
$server_addr
# 服务器的主机名
$server_name
# 服务器的端口号
$server_port
# 客户端请求时的referer,通俗讲就是该请求是通过哪个链接跳过来的
$http_referer
常用:$http_referer
# 请求的链接,包括$document_uri和$args
$request_uri
# 客户端的详细信息,也就是浏览器的标识,用curl -A可以指定
$http_user_agent
具体案例
args:name=zhangsan&age=15
document_root:/home/wwwroot/default/wounion/dragonfly/public
document_uri:/test/hello
host:jiqing.wounion.com
http_user_agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36
http_cookie:PHPSESSID=3ire1fr9bl3qdpd787pv0qb7a5
limit_rate:0
remote_addr:127.0.0.1
remote_port:43180
request_method:GET
request_filename:/home/wwwroot/default/wounion/dragonfly/public/test/hello
request_uri:/test/hello?name=zhangsan&age=15
scheme:http
server_protocol:HTTP/1.1
server_addr:127.0.0.1
server_name:jiqing.wounion.com
server_port:80
uri:/test/hello
http_referer:
nginx配置实践总结实用(配置一次动态处理多个vue项目路由)——<五>
参考文章:https://blog.youkuaiyun.com/weixin_39841709/article/details/111719925

本文详细介绍Nginx中的匹配操作符与正则表达式的应用,并通过实例展示如何配置Nginx来实现针对浏览器、文件及文件夹的有效管理。此外,还介绍了如何利用全局变量进行更灵活的配置。
1412

被折叠的 条评论
为什么被折叠?



