ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

nginx location的详细使⽤

2022-07-07 20:00:10  阅读:243  来源: 互联网

标签:匹配 uri nginx html location 详细 root


location:在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的URI来检查定义的所有location,
并找出一个最佳匹配(匹配的j location{}里的root,而不是server{}的root),而后应用其配置,
location [ = | ~ | ~* | ^~ ] uri { ... }
允许根据用户请求的URI来匹配定义的各location,匹配到时,此请求将被相应的location块中的配置所处理。
1).location = / { [ configuration A ]}          请求“/”匹配配置A,

2).location / {[ configuration B ]}             请求“/index.html”匹配配置B,

3).location /documents/ {[ configuration C ]}      请求“/documents/document.html”,2和3都匹配,3更精确匹配配置C

4).location ^~ /images/ {[ configuration D ]}     请求“/images/1.gif”,2和4和5都匹配,根据优先匹配配置D,

5).location ~* \.(gif|jpg|jpeg)$ { [ configuration E ] }  请求“/documents/1.jpg”,2和3和5都匹配,5更精确匹配配置E,


=     #用于标准uri前,需要请求字串与uri精确匹配,如果匹配成功就停止向下匹配并立即处理请求。 (常用 )
~     #用于标准uri前,表示包含正则表达式并且区分大小写,并且匹配 (常用 )
*     #用于标准uri前,表示包含正则表达式并且代表任意长度的任意字符
~*    #用于标准uri前,表示包含正则表达式并且不区分大小写,并且任意字符匹配 (常用 )
!~    #用于标准uri前,表示包含正则表达式并且区分大小写,并且不匹配
!~*   #用于标准uri前,表示包含正则表达式并且不区分大小写,并且不匹配 
^~    #用于标准uri前,表示包含正则表达式并且匹配以什么开头 ,URI左半部分匹配,不区分字符大小写。(常用 )
$     #用于标准uri前,表示包含正则表达式并且匹配以什么结尾 
\     #用于标准uri前,表示包含正则表达式并且转义字符。可以转. * ?等 
根   不带符号 匹配起始于此uri的所有的uri
 

location优先级:(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正 则顺序) > (location 部分起始路径) > (/)
常用正则表达式: 字符 描述 \ 将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用 ^ 匹配输入字符串的起始位置 $ 匹配输入字符串的结束位置 * 匹配前面的字符零次或者多次 + 匹配前面字符串一次或者多次 ? 匹配前面字符串的零次或者一次 . 匹配除“\n”(换行符)之外的所有单个字符 | 或 (pattern) 匹配括号内的pattern 生产案例:静态资源配置 location ^~ /static/ { root /data/nginx/ } #或者 location ~* \.(gif|jpg|jpeg|png|bmp|tiff|tif|css|js|ico)$ { root /data/nginx/static; } 动态资源配置 location ~ \.(php|jsp|asp) { root /data/nginx/dynamic; }

 

server {
        listen       80;
        server_name  location.zjol.com.cn;
        charset utf-8;
        default_type text/html;

        location / {
            root   /data/nginx/html/location;
            index  index.html index.htm;
        }
        #静态资源配置
        location ^~ /static/ {
                root /data/nginx/html;
        }
        #或者
        #location ~* \.(gif|jpg|jpeg|png|bmp|tiff|tif|css|js|ico)$ {
#               root /data/nginx/html/static;
#       }
        #动态资源配置
        location ~ \.(php|jsp|asp) {
                root /data/nginx/html/dynamic;
        }


        #精确匹配
        location = /1.jpg {
            root /data/nginx/html/location;
            index index.html;
        }

#如区分大小写则"只能"访问aa.jpg。
#对于不区分大小写的location,则可以访问任意大小写结尾的图片文件,不区分大小写则可以访问aa.jpg以外的资源比如Aa.JPG、aA.jPG这样的混合名
称文件,但是要求nginx服务器的资源目录有相应的文件,比如有Aa.JPG有aA.jPG

        # 区分大小写
        #location ~ /A.?\.jpg {
        # 不区分大小写
        location ~* /A.?\.jpg {
            index index.html;
            root /data/nginx/html/location;
        }

}

 

标签:匹配,uri,nginx,html,location,详细,root
来源: https://www.cnblogs.com/Yuanbangchen/p/16455920.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有