Nginx 常用全局变量 及Rewrite规则详解
来源:互联网 发布:java class反编译工具 编辑:程序博客网 时间:2024/05/24 06:30
每次都很容易忘记Nginx的变量,下面列出来了一些常用
$remote_addr//获取客户端ip$binary_remote_addr//客户端ip(二进制)$remote_port//客户端port,如:50472$remote_user//已经经过Auth Basic Module验证的用户名$host//请求主机头字段,否则为服务器名称,如:blog.sakmon.com$request//用户请求信息,如:GET ?a=1&b=2 HTTP/1.1$request_filename//当前请求的文件的路径名,由root或alias和URI request组合而成,如:/2013/81.html$status//请求的响应状态码,如:200$body_bytes_sent // 响应时送出的body字节数数量。即使连接中断,这个数据也是精确的,如:40$content_length // 等于请求行的“Content_Length”的值$content_type // 等于请求行的“Content_Type”的值$http_referer // 引用地址$http_user_agent // 客户端agent信息,如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36$args //与$query_string相同 等于当中URL的参数(GET),如a=1&b=2$document_uri //与$uri相同 这个变量指当前的请求URI,不包括任何参数(见$args) 如:/2013/81.html$document_root //针对当前请求的根路径设置值$hostname //如:centos53.localdomain$http_cookie //客户端cookie信息$cookie_COOKIE //cookie COOKIE变量的值$is_args//如果有$args参数,这个变量等于”?”,否则等于”",空值,如?$limit_rate//这个变量可以限制连接速率,0表示不限速$query_string // 与$args相同 等于当中URL的参数(GET),如a=1&b=2$request_body // 记录POST过来的数据信息$request_body_file//客户端请求主体信息的临时文件名$request_method //客户端请求的动作,通常为GET或POST,如:GET$request_uri //包含请求参数的原始URI,不包含主机名,如:/2013/81.html?a=1&b=2$scheme //HTTP方法(如http,https),如:http$uri//这个变量指当前的请求URI,不包括任何参数(见$args) 如:/2013/81.html$request_completion//如果请求结束,设置为OK. 当请求未结束或如果该请求不是请求链串的最后一个时,为空(Empty),如:OK$server_protocol//请求使用的协议,通常是HTTP/1.0或HTTP/1.1,如:HTTP/1.1$server_addr//服务器IP地址,在完成一次系统调用后可以确定这个值$server_name//服务器名称,如:blog.sakmon.com$server_port//请求到达服务器的端口号,如:80
Rewrite正则相关指令详解:
nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令 格式如下: rewrite regex replacement flag rewrite 正则表达式 替换目标 flag标记
正则表达式匹配,有以下几种特殊写法:
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配判断有以下几种写法:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
flag标记可以用以下几种格式:
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301
使用last和break实现URI重写,浏览器地址栏不变。而且两者有细微差别,使用alias指令必须用last标记;使用proxy_pass指令时,需要使用break标记。Last标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求,而break标记则在本条规则匹配完成后,终止匹配。
Nginx Rewrite如何301跳转 如:将54php.cn 跳转到 www.54php.cn
server { listen 80; server_name www.54php.cn 54php.cn; if ($host != 'www.54php.cn' ) { rewrite ^/(.*)$ http://www.54php.cn/$1 permanent; } }
根据文件类型设置过期时间:
location ~* \.(js|css|jpg|jpeg|gif|png|swf)$ { if (-f $request_filename) { expires 1h; break; }}
原文地址:Nginx 常用全局变量 及Rewrite规则详解
标签:nginx 全局 变量 rewrite
智能推荐
- nginx处理问题笔记
- nginx rewrite 参数和例子
- Nginx return 关键字配置小技巧
- Nginx 禁用IP IP段
- php 请求参数限制
阅读全文
0 0
- Nginx 常用全局变量 及Rewrite规则详解
- Nginx Rewrite规则详解
- Nginx Rewrite规则详解
- Nginx Rewrite规则详解
- Nginx Rewrite规则详解
- Nginx常用Rewrite(伪静态规则)
- Nginx常用Rewrite(伪静态规则)
- Nginx常用Rewrite伪静态规则:
- Nginx常用Rewrite伪静态规则
- nginx rewrite重写规则配置详解
- nginx rewrite重写规则配置详解
- Nginx Rewrite规则及相关指令
- nginx rewrite 表达式规则
- nginx rewrite规则
- nginx rewrite规则
- nginx rewrite规则语法
- Nginx Rewrite规则初探
- Nginx Rewrite规则初探
- 用vue-cli脚手架创建项目
- 一些搁置的代码,总结
- 访问控制级别有哪些? 以及和abstract static final的位置关系
- 最大流问题预流推进算法(BFS优化)
- 学习笔记——JAVA设计模式<13>迭代器模式
- Nginx 常用全局变量 及Rewrite规则详解
- 【Machine Learning】【Python】一、HoG + SVM 物体分类 ---- 《SVM物体分类和定位检测》
- Hive提示警告SSL
- Kotlin-Android世界的一股清流-Package
- 一键重装系统工具哪个好?人人都会用的一键重装软件
- Android—ViewPager+布局xml(View)
- Python文件/文件夹操作大全
- 赛马问题
- 利用定时器定时发送邮箱邮件