首页 > 系统相关 >nginx的rewrite功能介绍

nginx的rewrite功能介绍

时间:2024-06-12 11:31:22浏览次数:14  
标签:http 请求 rewrite 介绍 server nginx 123 匹配

Rewrite 规则

ex:http://hostname/abc/abc.html
–>http://hostname/abc.php?abc
Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重定向到其他URL的过程。
URL Rewrite最常见的应用是URL伪静态化,是将动态页面显示为静态页面方式的一种技术。比如http://www.123.com/news/index.asp?id=123 使用URLRewrite 转换后可以显示为 http://www.123.com/news/123.html

1、隐藏内部细节,提高安全性
2、美观
3、防盗链

Rewrite相关指令

Nginx Rewrite相关指令有if、rewrite、set、return等。

if 的语法 应用于 server和location环境内
if (condition) { … }

if可以支持如下条件判断匹配符号
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
-f 和!-f 用来判断是否存在文件
-d 和!-d 用来判断是否存在目录
-e 和!-e 用来判断是否存在文件或目录
-x 和!-x 用来判断文件是否可执行

在匹配过程中可以引用一些Nginx的全局变量:
client(sip)–>server(dip/servername)

http://www.123.com/news/123.html

$args, 请求中的参数;
$document_root, 针对当前请求的根路径设置值;
$host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;
$limit_rate, 对连接速率的限制;
$request_method, 请求的方法,比如"GET"、"POST"等;
$remote_addr, 客户端地址;
$remote_port, 客户端端口号;
$remote_user, 客户端用户名,认证用;
$request_filename, 当前请求的文件路径名
$query_string, 与$args相同;
$scheme, 所用的协议,比如http或者是https
$server_protocol, 请求的协议版本,“HTTP/1.0"或"HTTP/1.1”;
$server_addr, 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);
$server_name, 请求到达的服务器名;
$document_uri 与$uri一样,URI地址;
$server_port, 请求到达的服务器端口号;

源:192.168.0.254(1024+)–>192.168.0.1(80)
请求url:http://192.168.0.1/123.html?123

log_format main ‘$remote_addr $remote_port $host $server_name $server_port $request $status $document_root $request_filename $query_string $scheme $server_protocol $document_uri’;

192.168.0.254 43466 192.168.0.1 80 GET /123.html HTTP/1.1 200 /webroot/vm01 vm01.baidu.com /webroot/vm01/123.html - http HTTP/1.1 /123.html

rewrite 指令根据表达式来重定向URI,或者修改字符串。可以应用于server,location, if环境下 每行rewrite指令最后应该根一个flag标记,支持的flag标记有:
last 表示完成rewrite
break 本条规则匹配完成后,终止匹配,不再匹配后面的规则
redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent 返回301永久重定向,浏览器地址不会显示跳转后URL地址

last和break标记的区别在于,last标记在本条rewrite规则执行完后,会对其所在的server { … } 标签重新发起请求,而break标记则在本条规则匹配完成后,停止匹配,不再做后续的匹配。另有些时候必须使用last,比如在使用alias指令时,而使用proxy_pass指令时则必须使用break。

rewrite	xxx	qqq	last
rewrite	xxx	qqq	break
rewrite	xxx	qqq	redirect
rewrite	xxx	qqq	permanent

标签:http,请求,rewrite,介绍,server,nginx,123,匹配
From: https://blog.csdn.net/u014516208/article/details/139605034

相关文章

  • 京准电钟 | NTP网络时间同步协议原理及其应用介绍
    京准电钟|NTP网络时间同步协议原理及其应用介绍京准电钟|NTP网络时间同步协议原理及其应用介绍京准电子科技官微——ahjzsz摘要:首先对计算机网络时间同步相关技术进行了介绍,然后阐述了时间同步技术在现代计算机网络中的应用与发展,最后指出时间同步网络在下一代网络(N......
  • Spring Boot中的RESTful API详细介绍及使用
    在SpringBoot中,RESTfulAPI的实现通过控制器类中的方法和特定的注解来完成。每个注解对应不同的HTTP请求方法,并通过处理请求参数和返回响应来实现不同的操作。下面将详细解释RESTfulAPI中的各个方面,包括@GetMapping,@PostMapping,@PutMapping,和@DeleteMapping的作用......
  • 下载使用nginx发布html自定义页面
    在浏览器搜索nginx.org,然后点击download,接着点击 stableandmainline选择自己所使用系统对应的信息后点击(我用的是CentOS,所以需要点击RHELandderivatives)vim/etc/yum.repos.d/nginx.repo[nginx-stable]name=nginxstablerepobaseurl=http://nginx.org/packages/ce......
  • 计算机毕业设计项目推荐,32006 node 中国传统节日介绍网站(开题答辩+程序定制+全套文案
    基于node.js中国传统节日介绍网站 摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,中国传统节日介绍网站当然也不能排除在外。中国传统节日介绍网站是以实际运用为开发背景,运用软件工程原理和开发方法,采......
  • 4.nginx-反向代理
    准备工作1.安装apache-tomcat,下载后,解压 tar-xvfapache-tomcat-7.0.70.tar.gzhttp://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz2.安装openjdksudoyuminstalljava-1.8.0-openjdkjava-version检查是否安装成功启动tom......
  • 3.Nginx配置文件基本介绍
    nginx配置文件所在路径:/usr/local/nginx/conf/nginx.confnginx配置文件有三块:1.全局块从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令。配置运行nginx服务器的用户(组)允许生成的workerprocess数,Nginx服务器并发处理服务的关键配置,w......
  • 私有化部署bitwarden密码管理器(三)——nginx方式部署
    仅有IP无证书的环境部署bitwarden密码管理器虽然使用npm方式部署比较简单,但是很多小伙伴可能没有一台带域名国外vps,接下来介绍仅有IP的Vps,如国内的服务器无域名证书或者是本地无外网的环境如:虚拟机、NAS、树莓派等环境部署bitwarden密码管理器。部署NginxNginx和NginxProxy......
  • 大模型LLM出现涌现能力的原因介绍
    大模型的涌现能力主要是由以下几个原因造成的:(1)数据量的增加:随着互联网的发展和数字化信息的爆炸增长,可用于训练模型的数据量大大增加。更多的数据可以提供更丰富、更广泛的语言知识和语境,使得模型能够更好地理解和生成文本。(2)计算能力的提升:随着计算硬件的发展,特别是图形......
  • 线程介绍及其Java如何用Thread 类创建线程和操作线程方法
    目录一、进程和线程1.1进程特征2.2线程特征2.3区别二、利用Thread类创建线程2.1通过创建Thread子类,重写run()方法2.2通过实现Runnable接口,重写run()方法2.3.Callable接口+FutureTask创建线程2.3三种方法区别1.通过创建Thread子类,重写run()方法2.通过实......
  • 在Linux系统中使用Certbot为Nginx安装SSL证书
    在Linux系统中使用Certbot为Nginx安装SSL证书并进行配置,通常遵循以下步骤:1.安装Certbot首先确保你的系统已经安装了EPEL仓库,如果没有安装,可以通过以下命令安装:sudoyuminstallepel-release接着安装Certbot:sudoyuminstallcertbot2.配置Nginx在Nginx配置文件中添......