Nginx(四) absolute_redirect、server_name_in_redirect、port_in_redirect 请求重定向指令组合测试

        本篇文章主要用来测试absolute_redirect、server_name_in_redirect和port_in_redirect三个指令对Nginx请求重定向的影响,Nginx配置详解请参考另一篇文章 Nginx(三) 配置文件详解 

        接下来,在Chrome无痕模式下进行测试。 

测试1:absolute_redirect=on; server_name_in_redirect off; port_in_redirect on; #默认配置

absolute_redirect on;
server_name_in_redirect off;
port_in_redirect on;

server {
    listen 8688;
    server_name www.reade*******.cn;

    root pages;

    location /s {
        return 301 /test.html;
    }

    location / {
        index  index.html index.htm;
    }
}

请求地址: http://www.47.**.**.80.cn:8688/s

请求结果:Location: http://47.**.**.80:8688/test.html

Location = 原始请求Host:Nginx监听端口/uri

客户端接收到301 Code后,以Location返回值为全新的URL重新发送一次请求。

服务端告诉客户端,我搬家了,这是新家的地址Location,以后按照这个新地址找我。

测试2absolute_redirect=off; server_name_in_redirect off; port_in_redirect on;

请求地址: http://www.reade*******.cn:8688/s

请求结果:Location: /test.html

客户端接收到301 Code后,以Location返回值为新的URI重新发送一次请求,Host和port不变。

服务端告诉客户端,我家前门坏了,你从后门进来,后门在这Location。

        测试1、2最后重新发起请求的地址都是 http://www.reade*******.cn:8688/test.html,虽然结果相同,但根本逻辑还是不一样的。

 测试3:absolute_redirect=on; server_name_in_redirect on; port_in_redirect on;

修改配置文件server_name为IP。

absolute_redirect on;
server_name_in_redirect on;
port_in_redirect on;

server {
    listen 8688;
    server_name 47.**.**.80;
    root pages;
    location /s {
        return 301 /test.html;
    }
    location / {
        index  index.html index.htm;
    }
}

请求地址: http://www.reade*******.cn:8688/s

请求结果:Location: http://47.**.**.80:8688/test.html

非80/443端口:Location=server_name:Nginx监听端口/uri

Nginx将原请求中的Host替换为server_name,客户端接收到301 Code后,以Location返回值为全新的URL重新发送一次请求。

测试4:absolute_redirect=on; server_name_in_redirect on; port_in_redirect off;

请求地址: http://www.reade*******.cn:8688/s

请求结果:Location: http://47.**.**.80/test.html

Location=server_name/uri

Nginx此时返回的Location中没有port,未将监听的port添加的Host后。

测试5:absolute_redirect=on; server_name_in_redirect off; port_in_redirect off;

请求地址: http://www.reade*******.cn:8688/s

请求结果:Location: http://www.reade*******.cn/test.html

Location=原始请求Host/uri

Host没有替换,请求地址中没有port。

        经过上面的5个测试,我们可以更深刻的理解 absolute_redirect、server_name_in_redirect、port_in_redirect这三个指令的作用。另外,需要特殊说明下,当我们访问80或443端口时,无论port_in_redirect 是否开启,Location中都不会有port,这应该算是第6个测试,所以上面三个参数无论如何配置,一共是六种重定向结果。更详细的讲解请参考这篇文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/184695.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL基础理论篇(六):多表的连接方式

文章目录 简介笛卡尔积等值连接非等值连接外连接自连接其他SQL92与SQL99中连接的区别不同DBMS下使用连接的注意事项参考文献 简介 SQL92中提供了5类连接方式,分别是笛卡尔积、等值连接、非等值连接、外连接(左连接、右连接、全外连接(full outer join、全连接))和自…

rabbitMQ的Topic模式的生产者与消费者使用案例

topic模式 RoutingKey 按照英文单词点号多拼接规则填充。其中消费者匹配规则时候 * 代表一个单词,#表示多个单词 消费者C1的RoutingKey 规则按照*.orange.* 匹配 绑定队列Q1 package com.esint.rabbitmq.work05;import com.esint.rabbitmq.RabbitMQUtils; import …

大数据-之LibrA数据库系统告警处理(ALM-12049 网络读吞吐率超过阈值)

告警解释 系统每30秒周期性检测网络读吞吐率,并把实际吞吐率和阈值(系统默认阈值80%)进行比较,当检测到网络读吞吐率连续多次(默认值为5)超过阈值时产生该告警。 用户可通过“系统设置 > 阈值配置 >…

如何设计开发一对一交友App吸引更多活跃用户

在当今社交媒体时代,一对一交友App开发正日渐成为发展热点。如何吸引更多活跃用户成为开发者们的首要任务。通过本文,我们将探讨一系列方法,助您设计开发一对一交友App,吸引更多用户的关注和参与,提升App的活跃度。 了…

【重点文章】服务升级惨痛教训

文章目录 事故解析:避免方法涉及知识 以前怎么接触过大表,所以alter操作我都是一次性执行好几条的,这几条一下子干过去了   结果就是一直在转圈执行,因为alter产生的是表级排它锁,所以有关这几个表的查询更新操作全部处于阻塞…

Linux动静态库

文章目录 1. 静态库2. 动态库3. 动态库的加载 本章代码gitee仓库:动静态库 1. 静态库 Linux开发工具gcc/g篇,此篇文章讲过动静态库的基本概念,不了解的可以先看一下这篇文章。 现在我们先来制作一个简单的静态库 mymath.h #pragma once#i…

Apache阿帕奇安装配置

目录 一、下载程序 1. 点击Download 2. 点击Files for Microsoft Windows 3. 点击Apache Lounge 4. 点击httpd-2.4.54-win64-VSI6.zip ​5. 下载压缩包 6.解压到文件夹里 二、配置环境变量 1. 右键我的电脑 - 属性 2. 高级系统设置 3. 点击环境变量 4. 点击系统变…

springboot326校园体育场馆(设施)使用管理网站

交流学习: 更多项目: 全网最全的Java成品项目列表 https://docs.qq.com/doc/DUXdsVlhIdVlsemdX 演示 项目功能演示: ————————————————

【Java】详解多线程通信

🌺个人主页:Dawn黎明开始 🎀系列专栏:Java ⭐每日一句:什么都不做,才会来不及 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️ 文章目录 🔐多…

12v24v60v高校同步降压转换芯片推荐

12V/24V/60V 高校同步降压转换芯片推荐: 对于需要高效、稳定、低噪音的降压转换芯片,推荐使用WD5030E和WD5105。这两款芯片都是采用同步整流技术,具有高效率、低噪音、低功耗等优点,适用于各种电子设备。 WD5030E是一款高效率…

Scrapy----Scrapy简介

文章目录 概述与应用背景架构和组件功能和特点社区生态概述与应用背景 Scrapy,一个高效、灵活、且强大的Web爬取框架,被广泛应用于数据抓取和网页内容的结构化提取。它是用Python编写的,支持多平台运行,适用于数据挖掘、在线零售信息收集、历史数据存档等多种场景。Scrapy…

交换排序详讲:冒泡排序+快速排序(多方法+思路+图解+代码)

文章目录 交换排序一.冒泡排序二.快速排序1.挖坑法2.Hoare法 交换排序 根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 一.冒泡排序 /*** 冒泡排序* 时间复杂度 n^2* 空间复杂…