微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx的位置块,匹配一组url

我的应用程序中有一个IdentityAccess控制器,它包含四个操作方法

login

刷新

撤消

所以,我可以通过localhost / IdentityAccess / login等访问这些动作方法。另外,我实现了Luavalidation,这应该保护一些路由。 例如,这是我如何保护来store控制器的所有请求:

location /store/ { rewrite_by_lua_file 'jwt-validation.lua'; proxy_pass http://store_server/ ... }

但是,整个问题是与IdentityAccess控制器。 在这个控制器中,我想确保除login以外的所有操作方法。 此外,我不想创build一大堆像location /IdentityAccess/check { ... , location /IdentityAccess/refresh { ...等等,并适用于每个位置Lua脚本的确切位置。 我想要的是某种正则expression式,它将匹配一系列操作方法 – 检查,刷新和撤消 – 并且会忽略login操作方法。 但是我不知道最好的办法是什么。

如何使用Nginx禁用PHP 5(FPM)的代码caching?

uWsgi虚拟主机问题

将应用程序级用户名/用户标识注入到Nginx / Apache日志中

Nginx和Node.js未知的指令

我如何用Angular-Cli运行PM2? – Angular2

Nginx的服务静态文件,并得到403禁止

-su:bundle:启动独angular兽时找不到命令

Bundler在ubuntu 14.04上搭载passenger-install-Nginx-module的错误

Nginx`location`指令中的`expires -1`是什么意思?

Nginx日志logging:收到第一个字节和最后一个字节

选择具有最长匹配前缀的前缀位置。 所以你需要的是定义/IdentityAction/login/位置没有jwt验证。

location /IdentityAction/ { rewrite_by_lua_file 'jwt-validation.lua'; proxy_pass http://store_server; ... } location /IdentityAction/login/ { proxy_pass http://store_server; ... }

当然,这也可以用正则表达式位置来完成,但是在这种情况下,位置在文件中的位置是重要的,因为选择了第一个匹配(但是对于前缀位置位置并不重要,因为所选位置的最佳匹配)。 用正则表达式可以看起来像

location ~ ^/IdentityAction/login/$ { # first location in file proxy_pass http://store_server; } location ~ ^/IdentityAction/$ { # second location in file rewrite_by_lua_file 'jwt-validation.lua'; proxy_pass http://store_server; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐