• 欢迎访问VPS岛网站,国外VPS,国内VPS,国外服务器,国内服务器,服务器主机,测评及优惠码,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群

1.19 nginx的location配置

Nginx相关 kevinxliu 184次浏览 已收录 0个评论

1.19 nginx的location配置

安装第三方模块echo-nginx-module

git clone https://github.com/openresty/echo-nginx-module.git
./configure --prefix=/usr/local/nginx --add-module=/path/to/echo-nginx-module

安装echo模块操作:

cd /usr/local/src/nginx-1.8.0/
./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/echo-nginx-module
make && make install 
/etc/init.d/nginx restart
# nginx -V
nginx version: nginx/1.8.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) 
configure arguments: --prefix=/usr/local/nginx --add-module=/usr/local/src/echo-nginx-module

配置写法:

server {
        listen 80;
        server_name  2.com;
        root /data/t-nginx/2.com;
        location /abc/
          {
                echo 123;
          }
        }

效果:访问/abc/要输出echo的信息

curl -x127.0.0.1:80 2.com/abc/1111
123

location语法

location [=|^~|~|~*] /uri/ { …. }

https://coding.net/u/aminglinux/p/nginx/git/blob/master/location/ruler.md 

location优先级及案例

=  高于  ^~  高于  ~* 等于 ~  高于  /

http://coding.net/u/aminglinux/p/nginx/git/blob/master/location/priority.md 

场景比较:/ 与 ~*

server {
        listen 80;
        server_name  2.com;
        root /data/t-nginx/2.com;
        location /abc/
          {
                echo "/";
          }
        location ~* abc
          {
                echo "~*";
          } 
        }

效果:

 当匹配到 location /abc/的时候,输出/

 当匹配到 location ~* abc的时候,输出~*

测试访问:

curl -x127.0.0.1:80 2.com/abc/1111

~*

实验证明,同样的场景~*比/的优先级要高。

场景比较:~~*

当这2个同时存在,会匹配最先出现的location语法

场景比较:= ^~

vim 2.com.conf 
server {
        listen 80;
        server_name  2.com;
        root /data/t-nginx/2.com;
        location ^~ abc
          {
                echo "^~";
          }
        location = "/abc/1.php"
          {
                echo "=";
          }
}
# curl -x127.0.0.1:80 2.com/abc/1.php
=

实验证明,同样的场景,=比^~的优先级要高。

规则示例

location = "/12.jpg" { ... }

如:

www.aminglinux.com/12.jpg     匹配
www.aminglinux.com/abc/12.jpg     不匹配

不匹配原因:因为“=”是精准匹配

location ^~ "/abc/" { ... }

如:

www.aminglinux.com/abc/123.html 匹配
www.aminglinux.com/a/abc/123.jpg 不匹配

不匹配原因:因为是以"/abc/"开头并匹配

location ~ "png" { ... }

如:

www.aminglinux.com/aaa/bbb/ccc/123.png 匹配
www.aminglinux.com/aaa/png/123.html 匹配

都匹配:~匹配"png"即可

location ~* "png" { ... }

如:

www.aminglinux.com/aaa/bbb/ccc/123.PNG 匹配
www.aminglinux.com/aaa/png/123.html 匹配

都匹配:因为不区分大小写匹配,所以有"png"都会匹配

location /admin/ { ... }

如:

www.aminglinux.com/admin/aaa/1.php 匹配
www.aminglinux.com/123/admin/1.php 不匹配

不匹配原因:因为是匹配uri后/admin/的开头,so第二个不配。


VPS岛 的文章和资源来自互联网,仅作为参考资料,如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。丨 转载请注明1.19 nginx的location配置
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址