php localtion,详解Nginx Location配置
今天有一位同学问到 Nginx 的站点多路径匹配的问题?
1.www.domain.com/a 需要返回 /var/www/domain.com/a/index.html
2.www.domain.com/b 需要返回 /var/www/domain.com/b/index.html
如何配置 Nginx 使之生效?
解决这个问题,第一的反映是直接使用 Nginx 的 location 指令来解决,不过在给出答案之前,我们先来了解一下 Nginx location 指令的基础。
Nginx 区块配置概念
在 Nginx 的配置文件中,通常会用两个常用的区块(Block)来进行设置:
1.Server 区块
2.Localtion 区块
这里的区块是指 Block,你甚至可以理解为后面的那一对{}之间的配置内容。
Sever 区块主要是真的主机的配置,比如配置主机的域名,IP,端口等内容。当然,在一个 Nginx 的配置文件里面,我们是可以指定多个 Sever 区块的配置的。
而 Location 区块则是在 Sever 区块里面,细分到针对不同的路径和请求而进行的配置。因为一个站点中的 URI 通常会非常多,所以在 Location 区块设置这部分,你也是可以写多个 Location 的配置的。
下面来看看 Location 配置的基本语法先:
?
上面的 optional_modifier 配置项是可以使用正则表达式的。常用的几种如下:
留空。对,留空也是一种设置方式。在留空的情况下,配置表示请求路径由 location_match 开始。
= ,等于号还是非常容易理解的:就是请求路径正好等于后面的 location_match 的值;跟第一项留空还是有区别的。
~,飘号(注意是英文输入的飘号)表示大小写敏感的正则匹配。
~*表示大小写不敏感的正则匹配。
^~ 表示这里不希望有正则匹配发生。
Nginx 处理 Location 区块的顺序
上面了解了 location 指令基本的概念和常用配置。我们再来看看 Location 生效的顺序!这个也很重要:
每一个请求进来 Nginx 之后,Nginx 就会选择一个 Location 的最佳匹配项进行响应,处理的具体流程是逐一跟 location 的配置进行比对,这个步骤可以分为以下几步:
先进行前缀式的匹配(也就是 location 的 optional_modifier 为空的配置)。
Nginx 其次会根据 URI 寻找完全匹配的 location 配置(也就是 location 的 optional_modifier 为 = 的配置).
如果还是没有匹配到,那就先匹配 ^~ 配置,如果找到一个配置的话,则会停止寻找过程,直接返回响应内容。
如果还是没有找到匹配项的话,则会先进行大小写敏感的正则匹配,然后再是大小不写敏感的正则匹配。
Nginx Location 配置的一些例子:
多说无益,看了那么多理论,没有具体的例子支撑也是白搭,所以我们来看一下具体的配置例子:
?
?
?
?
非常实用的两个例子:
1.简单的图片防盗链
?
2.针对一些可写入的路径,禁止 php 或者 js 的脚步执行
?
问题的答案
最后,我们再看问题的答案,可以是类似这个样子的:
?
原文链接:https://segmentfault.com/a/1190000014866603
php localtion,详解Nginx Location配置相关推荐
- 详解 nginx location ~ .*\.(js|css)?$ 什么意思?
location 是用来匹配用的,匹配到就处理括号里的事件 语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头 ...
- 详解Nginx SSL快速双向认证配置(脚本)
这篇文章主要介绍了详解Nginx SSL快速双向认证配置(脚本),现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 目前遇到一个项目有安全性要求,要求只有个别用户有权限访问.本着能用配置解决就 ...
- 从一份配置清单详解Nginx服务器配置
概述 在前面<Nginx服务器开箱体验> 一文中我们从开箱到体验,感受了一下Nginx服务器的魅力.Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理.负载均衡.缓存 ...
- 详解 nginx 配置文件及构建 web 虚拟主机
详解 nginx 主配置文件.添加服务及构建 web 虚拟主机 一.添加为系统服务 1.方法一 2.方法二 二.nginx 主配置文件 nginx.conf 1.全局配置 2.I/O 事件配置 3.H ...
- iis7 php 403,详解Nginx 出现 403 Forbidden 的解决办法
本篇文章主要介绍了详解Nginx 出现 403 Forbidden 的解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 Nginx 也是当前流行的一款 轻量级服务器 ...
- K8SPod详解之pod配置
K8SPod详解之pod配置 Pod定义 Pod配置 pod.spec.containers 基本配置 镜像拉取 启动命令 环境变量 端口设置 资源配额 每个pod中都可以包含一个或者多个容器,这些容 ...
- 详解nginx服务器绑定域名和设置根目录的方法
主要介绍了详解nginx服务器绑定域名和设置根目录的方法,nginx服务器绑定域名以及设置根目录非常方便,小 编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 nginx服务器 ...
- linux下nginx启动不了,详解Nginx启动失败的几种错误处理
使用Nginx做Web服务器过程中,碰到过以下几个问题: 1.nginx启动失败 启动nginx失败,报错信息如下: Starting nginx: nginx: [emerg] bind() to ...
- 详解nginx代理天地图做缓存解决跨域问题
这篇文章主要介绍了详解nginx代理天地图做缓存解决跨域问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 作为一个GISer开发者,天地图是经常在项目中以底图的形式出现 ...
最新文章
- java list翻转_浅谈Java数据结构中的常见问题
- 混沌模型时间序列预测
- 网易云信SDK V3.1.0版本发布啦
- Blender建模与游戏换装(转载文)
- 使用Linux自定义自动补全命令完善自己的shell脚本
- Idea中上传项目到Github
- 他山之石——VBA SQL基础
- 系统崩溃怎么重装系统Win10?
- 项目经理如何做好授权管理?
- Monkey测试黑白名单
- 鼠标悬停出现二维码动画放大,url转二维码
- 休息时间!哪些业余活动能提升开发人员的技能?
- 摄像机投影成像 matlab,使用matlab仿真三维物点的透视投影成像.doc
- 【LSSVM回归预测】基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测【含Matlab源码 2259期】
- 拆机详解2:比Macintosh还早?苹果Lisa拆解
- 【PPic】在PPic图床中如何配置使用七牛
- PowerVM 高级功能——N_PIV
- 安拆网:钢管扣件检测标准是什么?
- 产业园以商招商实施方案
- VMware ESXi 7.0 U3i macOS Unlocker OEM BIOS (标准版和厂商定制版)