nginx配置详解location_nginxlocation

nginx配置详解location_nginxlocationNginx配置location详解转自:https://blog.csdn.net/u012260238/article/details/102498474?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant

Nginx配置location详解

转自:

https://blog.csdn.net/u012260238/article/details/102498474?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-102498474-blog-119041463.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-102498474-blog-119041463.pc_relevant_default&utm_relevant_index=1

location正则写法

location使用语法:

location [ = | ~ | ~* | ^~ ] uri { }

在这里插入图片描述一个示例:



 

顺序 no优先级:(location =) > (location 完整路径) > (location ^~ 路径) > (location , 正则顺序) > (location 部分起始路径) > (/)*

上面的匹配结果按照上面的location写法,以下的匹配示例成立:


nginx配置详解location_nginxlocation

实际使用建议

所以实际使用中,个人觉得至少有三个匹配规则定义,如下:

直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。

这里是直接转发给后端应用服务器了,也可以是一个静态首页

  • 第一个必选规则

 

  • 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项

有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用


  • 第三个规则就是通用规则,用来转发动态请求到后端应用服务器

#非静态文件请求就默认是动态请求,自己根据实际把握

#毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了


Rewrite规则:

Nginx的rewrite的主要功能是实现URL地址重写。Nginx的rewrite规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配。

Nginx rewrite语法:

rewrite regex replacement [flag];
#应用位置:server、location、if

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如http://seanlook.com/a/we/index.php?id=1&u=str只对/a/we/index.php重写。语法rewrite regex replacement [flag];

如果相对域名或参数字符串起作用,可以使用全局变量匹配,也可以使用proxy_pass反向代理。

表明看rewrite和location功能有点像,都能实现跳转,主要区别在于rewrite是在同一域名内更改资源的路径,而location是对一类路径做控制访问或反向代理,可以proxy_pass到其他机器。很多情况下rewrite也会写在location里,它们的执行顺序是:


 

如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件;循环超过10次,则返回500 Internal Server Error错误。

flag 标志位:


在这里插入图片描述
因为301和302不能简单的只返回状态码,还必须有重定向的URL,这就是return指令无法返回301,302的原因了。这里 last 和 break 区别有点难以理解:


 

Nginx的rewrite功能在企业里应用非常广泛:


 

if 指令与全局变量:

语法为if(condition){…},对给定的条件condition进行判断。如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容:


 

-f和!-f用来判断是否存在文件

-d和!-d用来判断是否存在目录

-e和!-e用来判断是否存在文件或目录

-x和!-x用来判断文件是否可执行

例如:


nginx配置详解location_nginxlocation

 

全局变量:

下面是可以用作if判断的全局变量:


nginx配置详解location_nginxlocation

nginx配置详解location_nginxlocation

常用正则:


nginx配置详解location_nginxlocation

 

小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。正则里面容易让人困惑的是转义特殊字符。

rewrite实例

例1:
···
http {


nginx配置详解location_nginxlocation

 

···
对形如/images/ef/uh7b3/test.png的请求,重写到/data?file=test.png,于是匹配到location /data,先看/data/images/test.png文件存不存在,如果存在则正常响应,如果不存在则重写tryfiles到新的image404 location,直接返回404状态码。

例2:


 

对形如/images/bla_500x400.jpg的文件请求,重写到/resizer/bla.jpg?width=500&height=400地址,并会继续尝试匹配location。

Nginx访问认证

有时需要为我们的网站设置访问账号和密码权限。
在这里插入图片描述


 

这两个参数需要说明:

auth_basic


 

auth_basic_user_file


file文件内容如下:


                                                        

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/7119.html

(0)
上一篇 2024年 5月 8日
下一篇 2024年 5月 8日

相关推荐

  • 控件开发工具怎么用不了

    控件开发工具怎么用不了今天分享如何利用Word开发工具中的空间来实现上述功能。·选择好下拉菜单和付款框。·首先打开文档,调出开发工具,在“文件”选项中找到“自定义功能区”,勾选“开发工具”选项,然后点击“确定”,添加一个选项卡。·将光标移动到需要插入空间的位置,点击“开发工具

    激活谷笔记 2024年 5月 17日
  • nginx是什么意思英语_nginx是啥意思

    nginx是什么意思英语_nginx是啥意思Controlling nginxControlling nginxChanging ConfigurationRotating Log-filesUpgrading Executable on the Flynginx can be controlled

    激活谷笔记 2024年 5月 13日
  • netshwinsockreset需要管理员身份

    netshwinsockreset需要管理员身份大家都知道在运行框中输入:cmd,回车就可以打开命令提示符,但一些命令需要管理员权限的命令提示符才能执行。否则视为无效命令。以管理员身份打开命令提示符的方法:适用于win10系统1、右键点击开始菜单,显示两个命令提示

    激活谷笔记 2024年 5月 18日
  • 数组指针和指针数组的定义_数组指针和指针数组的定义和区别

    数组指针和指针数组的定义_数组指针和指针数组的定义和区别2022年河北专接本考试大纲-理工类-计算机科学与技术、软件工程、数字媒体技术、网络工程、物联网工程、数据科学与大数据技术、智能科学与技术专业考试说明(C语言程序设计、微机原理与接口含汇编语言)本文中为2021年河北专接本考试大纲,选自官方发布!河北省普通高校专科接本科教育考

    2024年 5月 28日
  • 二叉排序树一定是满二叉树嘛对吗_二叉排序树一定是满二叉树嘛对吗

    二叉排序树一定是满二叉树嘛对吗_二叉排序树一定是满二叉树嘛对吗【音频带背】数据结构考前必背简答题系列(二):树与二叉树抓码计算机考研将陆续推出数据结构、计网、计组、操作系统的必背文本及音频,文本由抓码专业团队的学长姐精心梳理,单篇推送后会推出PDF合集,帮助正在冲刺备考的你提高学习效率。此外,抓码运营小组将根据你的需求制作音频或视

    2024年 5月 21日
  • spiritfarer材料一览_spiritfarer 材料

    spiritfarer材料一览_spiritfarer 材料《Spiritfarer》鱼类等素材分布位置一览 木材在哪里有?Spiritfarer木材在哪里有?游戏中有不少素材需要收集,这里给大家带来了Spiritfarer鱼类等素材分布位置一览,需要的玩家快来看下吧。Spiritfarer鱼类等素材分布位置一览鱼类钓点初始区域—&

    2024年 5月 24日
  • 分区表修复器怎么使用的_分区表修复器怎么使用的啊

    分区表修复器怎么使用的_分区表修复器怎么使用的啊分区表修复的简单方法!“电脑是Win10+Ubuntu双系统,因为Ubuntu分区所剩余的空间不足,而Windows所在的分区空间还很充足,于是准备切割出一个分区给Ubuntu重新挂载。分区完成后,重启开机无法启动电脑,使用U盘进入电脑后发现硬盘变成未分

    2024年 5月 21日
  • 什么是profibus?_什么是profibus协议

    什么是profibus?_什么是profibus协议PROFIBUS是什么?PROFIBUS是一种国际化、开放式、不依赖于设备生产商的现场总线标准。PROFIBUS传送速度可在 9.6kbaud~12Mbaud范围内选择且当总线系统启动时,所有连接到总线上的装置应该被设成

    2024年 5月 30日
  • springitspretty翻译_spring in spring翻译

    springitspretty翻译_spring in spring翻译“How-to” GuidesThis section provides answers to some common ‘how do I do that…​’ questions that o

    激活谷笔记 2024年 6月 1日
  • 用html制作网页个人简历的软件_用html制作网页个人简历的软件有哪些

    用html制作网页个人简历的软件_用html制作网页个人简历的软件有哪些使用html和css制作静态网页版的个人简历基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明基于html+css+js进行网页设计 课程设计 毕业设计 供参考 源码+说明基于html+css+js进行网页设计 课程设计 毕业设计 供参考

    激活谷笔记 2024年 5月 26日
  • Android使用ViewFlipper实现图片上下自动轮播的示例代码

    Android使用ViewFlipper实现图片上下自动轮播的示例代码这篇文章主要介绍了Android使用ViewFlipper实现图片上下自动轮播的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学…

    2024年 3月 16日
  • uniapp用来做什么_uniapp开发小程序好用吗

    uniapp用来做什么_uniapp开发小程序好用吗智能导诊系统源码,springboot+Uniapp3D人体智慧导诊系统源码智慧医院3D人体导诊系统源码开发语言:java开发工具:IDEA前端框架:Uniapp后端框架:springboot数 据 库:mysql移 动 端:小程序、H5“智慧导诊”以人工智

    2024年 5月 10日
关注微信