nginx rewrite功能使用

前言

大家在浏览某些网站的时候,有没有发现,当输入:www.abc.com或者www.abcd.com的时候,页面均能正常显示www.abc.com的主页内容。这就是nginx rewrite的一个使用场景。

rewrite简介

rewrite是Nginx服务器提供的一个重要基本功能,主要作用用来实现URL地址重写

rewrite功能实现依赖于pcre的支持,因此在编译安装Nginx服务器之前,需安装pcre库(nginx使用ngx_http_rewrite_module模块来解析和处理Rewrite功能的相关配置)

在真正了解rewrite的使用之前,有必要全面系统学习下rewrite相关的指令和语法使用,下面来逐一了解下吧

Rewrite规则与指令

set指令

该指令用来设置一个新的变量。

在这里插入图片描述

  • variable,变量名,该变量名要用"$"作为变量的第一个字符,且不能与Nginx服务器预设的全局变量同名;
  • value:变量值,可以是字符串、其他变量或者变量的组合等;

一个简单的案例

server {
    listen 8081;
    server_name localhsot;
    location /server {
            set $name zhangsan;
            set $age 19;
            default_type text/plain;
            return 200 $name=$age;
    }
}

重启nginx服务,然后浏览器访问观察下效果
在这里插入图片描述

下面列举了Rewrite常用全局变量

这些变量可以在使用过程中结合自身的业务灵活选择使用

变量

说明

$args

变量中存放了请求URL中的请求指令。如http://IP:8080arg1=value1&args2=value2中 的"arg1=value1&arg2=value2",功能和$query_string一样

$http_user_agent

变量存储了用户访问服务的代理信息(如果通过浏览器访问,记录的是浏览器的相关版本信息)

$host

变量存储的是访问服务器的server_name值

$document_uri

变量存储了当前访问地址的URI。比如http://IP/serverid=10&name=zhangsan中的"/server",功能和$uri一样

$document_root

变量存储的是当前请求对应location的root值,如果未设置,默认指向Nginx自带html目录所在位置

$content_length

变量存储的是请求头中的Content-Length的值

$content_type

变量存储的是请求头中的Content-Type的值

$http_cookie

变量存储的是客户端的cookie信息,可以通过add_header Set-Cookie’cookieName=cookieValue’来添加cookie数 据

$limit_rate

变量中存储的是Nginx服务器对网络连接速率的限制,也就是Nginx配置中对limit_rate指令设置的值,默认是0,不限制

$remote_addr

变量中存储的是客户端的IP地址

$remote_port

变量中存储了客户端与服务端建立连接的端口号

$remote_user

变量中存储了客户端的用户名,需要有认证模块才能获取

$scheme

变量中存储了访问协议

$server_addr

变量中存储了服务端的地址

$server_name

变量中存储了客户端请求到达的服务器的名称

$server_port

变量中存储了客户端请求到达服务器的端口号

$server_protocol

变量中存储了客户端请求协议的版本,比如"HTTP/1.1"

$request_body_file

变量中存储了发给后端服务器的本地文件资源的名称

$request_method

变量中存储了客户端的请求方式,比如"GET","POST"等

$request_filename

变量中存储了当前请求的资源文件的路径名

$request_uri

变量中存储了当前请求的URI,并且携带请求参数,比如http://IP/serverid=10&name=zhangsan中的"/serverid=10&name=zhangsan名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值