Nginx 跳转_nginx 某个aspx页面 跳转-程序员宅基地

技术标签: nginx  LINUX网页服务  运维  服务器  

一.Nginx常见模块

1.http

http块是Nginx服务器配置中的重要部分,代理、缓存和日志定义等绝大多数的功能和第三方模块的配置都可以放在这模块中。作用包括:文件引入、MIME-Type定义、日志自定义、是否使用sendfile传输文件、连接超时时间、单连接请求数上限等。

2.server

server块,虚拟主机(虚拟服务器)。作用:使得Nginx服务器可以在同一台服务器上只要运行一组Nginx进程,就可以运行多个网站。

3.location

location块是server块的一个指令。作用:基于Nginx服务器接收到的请求字符串,虚拟主机名称(ip,域名)、url匹配,对特定请求进行处理。

二.location

1.一般分为普通和正则

常用的正则表达式

字符 含义
. 匹配任意单个字符,可以是一个汉字
^ 行首锚定, 用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
* 匹配前面字符任意次(包括0次)
? 0或1次
+ 1次或多次(1次或以上)
\ 转义符
\d 只匹配数字
{n} 重复n次
{n,} 至少n次(n次货以上)
{n,m} n到m次
[ ] 定义匹配字符的范围,只匹配一次
[c] 单个字符
[a-z] 匹配任意小写字母
[a-zA-Z0-9] 匹配任意字母和数字
() 表达式的开始和结束位置
| 或运算符a|b

2.location 常用的匹配规则

规则表达式 规则含义
= 进行普通字符精确匹配。也就是完全匹配
^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他 location
~ 表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
!~ 表示执行一个正则匹配,区分大小写不匹配
!~* 表示执行一个正则匹配,不区分大小写不匹配

3.location 示例

1)精确匹配

location = / {}
=为精确匹配 / , 主机名后不能携带任何字符串,比如 / 和 /data ,则/匹配,/data不匹配

2)一般匹配/通用匹配

location  / {}
代表已/开头,所以这条规则将匹配所有的请求  

location  /documents/ {}
匹配任何已/documents/开头的地址,匹配符合后,还会继续往下搜索其他 location,只有其它location后面的正则表达式没有匹配到时,才会用这一条

  1. 正则匹配
location ^~ /images/ {} 
匹配任何已/images/ 开头的地址,匹配符合后,停止往下搜索,采用这一条


location ~* \.(gif|jpg|jpeg)$ {} 
匹配所有 gif jpg 或 jepg 结尾的请求
如果 有上面的location ^~ /images/ {}匹配  则会先匹配上一请求,所以到不了这一条。

4.location优先级排列说明

  1. 等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
  2. ^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
  3. 正则表达式类型(*)的优先级次之。常规字符串匹配类型(不带任何修饰符的匹配),按前缀匹配。/test
  4. 通用匹配(/),如果没有其它匹配,任何请求都会匹配到。

location 优先级总结
如果是匹配路径:
(location = 完整路径) > (location ^~ 完整路径) > (location ~* 完整路径) >(location ~ 完整路径) > (location /)通用匹配
用目录做匹配访问某个文件
(location =目录)>(location~目录/)> (location~目录)>(location ~*目录)>(location目录)>(location /)

[root@localhost conf]# vim nginx.conf
[root@localhost conf]# pwd
/usr/local/nginx/conf

在这里插入图片描述
增加
在这里插入图片描述

[root@localhost conf]# mkdir -p /wuqi/plane
[root@localhost conf]# vim /wuqi/plane/index.html

在这里插入图片描述
但是打开主页仍然不是我们想要的页面
在这里插入图片描述
所以证实了在精准匹配没加后缀前级别还不如普通匹配

[root@localhost wuqi]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述
重启服务后

[root@localhost wuqi]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost wuqi]# service nginx restart

在域名后加上后缀,精准匹配就生效了,而不再是主页了
在这里插入图片描述
实际网站使用中,至少有三个匹配规则定义

第一个规则
直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,比如说官网。
可以是一个静态首页,也可以直接转发给后端应用服务器
第二个规则
是处理静态文件请求,这是nginx作为http服务器的强项有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用
第三个规则
就是通用规则,比如用来转发带.php、.jsp后缀的动态请求到后端应用服务器。

三.REWRITE模块

现在 Nginx 已经成为很多公司作为前端反向代理服务器的首选,在实际工作中往往会
遇到很多跳转(重写 URL)的需求。比如更换域名后需要保持旧的域名能跳转到新的域名
上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求。如果在后端使用的 Apache
服务器,虽然也能做跳转,规则库也很强大,所以用 Nginx 跳转效率会更高。

1.功能

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。比如:更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求
rewrite 只能在
server {}
location {}
if {}
中,并且默认只能对域名后边的除去传递的参数外的字符串起作用

2.跳转场景

Rewrite 跳转场景主要包括以下几种

  1. 可以调整用户浏览的 URL,看起来更规范,合乎开发及产品人员的需求
  2. 为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态 URL 地址伪装成静态地址提供服务
  3. 网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的 360buy.com会跳转到 jd.com
  4. 根据特殊变量、目录、客户端的信息进行 URL 调整等。

3.跳转实现

Nginx 是通过 ngx_http_rewrite_module 模块支持 url 重写、支持 if 条件判断,但不支
持 else。
另外该模块需要 PCRE 支持,应在编译 Nginx 时指定 PCRE 支持,默认已经安装。
根据相关变量重定向和选择不同的配置,从一个 location 跳转到另一个 location,不过这样
的循环最多可以执行 10 次,超过后 Nginx 将返回 500 错误。
同时,重写模块包含 set 指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等。

4.执行顺序

rewrite执行顺序如下:

  1. 执行server块里面的rewrite指令。
  2. 执行location 匹配。
  3. 执行选定的location中的rewrite指令。

5.语法格式

rewrite <regex> <replacement> [flag];
regex:表示正则匹配规则
replacement:表示跳转后的内容
flag:表示rewrite 支持的 flag 标记

flag 标记说明:
last:本条规则匹配完成后,继续向下匹配新的location URL规则,一般用在server和if中
break:本条规则匹配完成即终止,不再匹配后面的任何规则。一般用在location中
redirect:返回 302 临时重定向,浏览器地址会显示跳转后的 URL 地址,爬虫不会更新 url(因为是临时)。
permanent:返回 301 永久重定向,浏览器地址栏会显示跳转后的 URL 地址,爬虫更新 url。

6.实例

6.1域名跳转

从一个网址跳转至另一个域名

[root@localhost ~]# cd /usr/local/nginx/html
[root@localhost html]# mkdir zy
root@localhost html]# ls
123.png  50x.html  index.html  zy
[root@localhost html]# cd zy
[root@localhost zy]# vim index.html

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
打开客户机

[root@www ~]# vim /etc/hosts

在这里插入图片描述
打开浏览器,输入“www.zy.com”
在这里插入图片描述
但是网页打开的却是“www.fxy.com”
在这里插入图片描述

6.2基于客户端IP 访问跳转

输入IP地址进行跳转到目标地址

[root@localhost ~]# cd /usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf

在这里插入图片描述

在这里插入图片描述
创建一个页面

[root@localhost nginx]# cd /usr/local/nginx/html
[root@localhost weihu]# vim weihu.html

在这里插入图片描述
打开客户端,输入“192.168.133.100”或者“www.zy.com”
在这里插入图片描述
在这里插入图片描述

6.3基于旧域名跳转到新域名后面加目录

在原目标地址中间增加一个目录

[root@localhost ~]# cd /usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf

在这里插入图片描述
在这里插入图片描述

[root@localhost conf]# cd /usr/local/nginx/html/
[root@localhost html]# mkdir -p bbs/luntan
[root@localhost html]# ls
123.png  50x.html  bbs  index.html
[root@localhost html]# cd bbs
[root@localhost bbs]# ls
luntan
[root@localhost bbs]# cd luntan/
[root@localhost luntan]# vim test.html

在这里插入图片描述

[root@localhost luntan]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost luntan]# service nginx restart

开启客户端 在网页里输入“www.zy.com/luntan”
在这里插入图片描述
会跳到新地址
在这里插入图片描述

6.4基于参数匹配的跳转

匹配参数可以直接跳转

[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf

在这里插入图片描述
在这里插入图片描述

开启客户端
输入网址这里200后的数可以随便输入任意数
在这里插入图片描述
跳转至主页
在这里插入图片描述

6.5基于目录下所有的php文件

只要是.php结尾的都可以跳转主页

[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf

在这里插入图片描述
在这里插入图片描述
打开客户端
输入网址后加上“upload…/.php"结尾
在这里插入图片描述
网页会自动跳转到主页
在这里插入图片描述

6.6基于普通的一条url

从目标地址跳转至主页

[root@localhost ~]# cd /usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf

在这里插入图片描述
在这里插入图片描述

[root@localhost conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# service nginx restart

开启客户端
输入www.zy.com/abc/123.html
在这里插入图片描述
跳至主页
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yan_0916/article/details/121313845

智能推荐

ubuntu 卡在waiting for unattended-upgr to exit的解决-程序员宅基地

文章浏览阅读1.2w次,点赞9次,收藏14次。https://blog.csdn.net/notacoder/article/details/102680465需要删除以下几个lock file就OK了 sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock ht..._waiting for unattended-upgr to exit

C语言最简单的变量交换,【C语言】5种妙招教你轻松搞定变量值交换-程序员宅基地

文章浏览阅读1.6k次。C语言中交换两个变量值的操作经常会用到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,一共有5种方法,希望大家看完有所收获。1.临时变量法方法解释:采用临时变量的方法,作为中间过渡,这是最简单也是大家最容易想到的方法,此法在各种场合应用极多,应该熟练掌握。#includeint main(void){int a=1,b=2,tmp;tmp =a;a=b;b=t..._交换两个变量的值c语言

ue4 怎么修改骨骼动画_它来了,它来了! 游戏角色与动画制作的智能工具 iClone Unreal Live Link 闪耀登场!!!...-程序员宅基地

文章浏览阅读1.1k次。点击蓝字关注我们它来了,它来了!游戏角色与动画制作的智能工具iClone Unreal Live Link闪耀登场!!!Reallusion研发团队近日最新发布了iClone Unreal Live Link系统,可实时创建在虚幻引擎系统中使用的角色、灯光、摄影机和动画,作为快速动画制作的智能工具iClone将动画创意、制作流程和精准可视化的技术优势与虚幻引擎的渲染技术完美结合,为动画、..._ue4 修改动画长度

css使两个盒子并列_css盒子模型(框模型)-程序员宅基地

文章浏览阅读7.5k次,点赞6次,收藏43次。简介:css处理网页时,它认为每个元素都包含在一个不可见的盒子里。把所有元素想象成盒子,那么对网页的布局就相当于摆放盒子。我们只需要将响应的盒子摆放到网页中相应的位置即可完成网页布局。盒子模型一个盒子我们会分成下面几个部分:内容区(content)内边距(padding)边框(border)外边距(margin)边框1.通过width和height实现一个100*100px的盒子2.为盒子设置边框..._css两个盒子并排

互联网大厂校招面试笔试题合集免费分享-程序员宅基地

文章浏览阅读438次,点赞10次,收藏9次。从编程语言、算法、数据库、网络、安全等多个角度进行分类,精选各互联网大厂的校招真题,帮助求职者提高自己的技术能力。编程语言:针对互联网大厂常用的编程语言(如Java、Python、C++、JavaScript等)的校招真题,涉及语法、算法、数据结构、虚拟机等。数据库:针对互联网大厂的SQL和NOSQL(如MySQL、PostgreSQL、MongoDB、Redis等)的校招真题。算法与数据结构:针对互联网大厂常用的数据结构和算法(如排序、查找、图、树、堆等)的校招真题。互联网大厂校招面试笔试题合集。

北邮计算机复试读英语,简单的说一下北邮的复试过程吧-程序员宅基地

文章浏览阅读1.5k次。逛论坛好久,却一直找不到北邮的复试方面的详细信息。今年既然自己考上了,又想起当初自己因为到处都找不到北邮复试的具体细节而迷茫,所以想趁着现在有时间,写一点北邮计算机复试方面的东西,希望对后面的学弟学妹们有帮助。开头先说一下,北邮计算机招生是以组为单位,所以面试情况不一定适用于所有组,我报的是12组。北邮的复试流程大概为心理测试、缴费、报道、听力、笔试、上机、面试、政审、体检,其中口语包括在面试里面..._北邮复试英语翻译

随便推点

z变换判断稳定性和因果性_判断因果性.PPT-程序员宅基地

文章浏览阅读7.5k次。判断因果性10.7离散时间系统系统函数与Z域分析 一.单位样值响应与系统函数 1.由零极点分布确定单位样值响应 由零极点分布确定单位样值响应(续) 利用z~s平面的映射关系 10.8 系统函数的方框图表示 在第二章已经讨论了差分方程描述的LTI系统的方框图表示。本届内容与其类似,主要是从系统函数出发讨论与方框图的互相表示。 直接二型方框图尤其重要。 10.9 用单边z变换解差分方程 序言 例1 ..._z变换怎么判断因果序列

VMware更换网络连接模式后局域网其他电脑无法ping通本机虚拟机_vmware设置桥接后其他主机无法访问-程序员宅基地

文章浏览阅读819次。本机可以ping通虚拟机,但局域网其他电脑无法ping通本机虚拟机的解决办法:1.虚拟机-设置-网络适配器-桥接模式2.更换网络连接模式后查看ip地址,再ping一下ip地址# 查看ip地址ifconfig_vmware设置桥接后其他主机无法访问

凭啥发奖金的时候,测试的分的最少?为啥地位这么低,我!_测试在拿项目奖金的时候-程序员宅基地

文章浏览阅读246次。凭什么测试的的奖金最少_测试在拿项目奖金的时候

java.net.SocketException: Software caused connection abort: socket write erro问题-程序员宅基地

文章浏览阅读2.5k次。导出报错所有导出excel无法实现,查询的所有的导出都有问题ClientAbortException: java.net.SocketException: Software caused connection abort: socket write errorat org.apache.catalina.connector.OutputBuffer.realWriteBytes(O..._java.net.socketexception: software caused connection abort: socket write err

我收集了39节从0入门《人工智能+Python》视频课,价值1999,免费下载 等会就删!...-程序员宅基地

文章浏览阅读631次。近几年来人工智能常常成为热门议题,经久不衰。2020年以来,在各种政策红利催化、5G商用助推、物联网、大数据、AI芯片技术大规模落地后,几乎所有人都已经笃定,人工智能就是IT人未来的新风..._python人工智能零基础视频教程下载

php背景自动切换图片,威联通NAS自动更换背景图片-程序员宅基地

文章浏览阅读928次。威联通NAS自动更换背景图片2019-12-23 13:45:380点赞5收藏0评论如何才能快速换一种生活方式?参加#牛年Flag#征稿活动,征集你2021年的购物学习生活计划!>>点击查看活动详情<看了值友得文章https://post.smzdm.com/p/andgv3n0/很感兴趣 ,可是我是威联通的NAS,再带的busybox里面的grep没有对应的参数,网上找了一下,..._威联通 更换壁纸

推荐文章

热门文章

相关标签