关于 nginx 验证 url 请求和 PHP 验证 url 请求效率问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
2384036992
V2EX    NGINX

关于 nginx 验证 url 请求和 PHP 验证 url 请求效率问题

  •  
  •   2384036992 2018-11-22 16:13:26 +08:00 3910 次点击
    这是一个创建于 2522 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有类似这样的 url 请求: http://aaabbbccc.com/aaa.php?uid=123456&timestamp=1542871794&nOnce=abcdefghij&sign=86b2d2fe14824347a376d2a551b7c07b

    我想的是在 nginx 就验证 url 是否合法,不合法直接 return 403。
    webserver 用的是 openresty-1.13.6.2,php 是 php7.1,nonce 是存在 redis 里的 60 秒过期,需要从 redis 读取 nonce 值是否存在, 如果在 nginx 层面验证 timestamp,nonce 和 sign,效率会不会比在 php 里面验证效率高?会不会导致别的不需要验证的 url 请求阻塞?
    验证方法写在 location /aaa.php { } 里面吗?
    谢谢各位指点帮助!
    8 条回复    2018-11-22 22:20:29 +08:00
    raysonx
        1
    raysonx  
       2018-11-22 16:18:38 +08:00
    合适的工具做合适的事,Ngnix 就让它老老实实地做反向代理以及提供静态资源,把逻辑放在程序代码里。
    raysonx
        2
    raysonx  
       2018-11-22 16:19:29 +08:00
    Nginx 官方有一篇文章,楼主英语好的话可以去读一下 https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
    2384036992
        3
    2384036992  
    OP
       2018-11-22 16:21:39 +08:00
    @raysonx 我先看下哈
    v2dead
        4
    v2dead  
       2018-11-22 16:36:38 +08:00
    这种简单的事情不需要问啊,跑几个压力测试就知道了。别人的经验不见得对你的真实业务有所帮助。而且这点效率本身不见得有什么值得优化的,要是一定要上 php 的话,从部署和开发的简单性来看,肯定放到 php 端简单很多。
    而且上面发的是 if is evil,但你用的是 openresty,靠 lua 模块做验证和这个似乎没什么关系。
    v2dead
        5
    v2dead  
       2018-11-22 16:38:58 +08:00
    对了,这篇 ifisevil 是有中文版的,记得就在《 openresty 最佳实践》里面有介绍。
    oott123
        6
    oott123  
       2018-11-22 17:54:17 +08:00 via Android
    理论上讲你逻辑都写在 openresty 效率更高,甚至你干脆做成 nginx 模块效率还要高一些。不过程序设计总讲究一个取舍,业务逻辑放 php 会不会更好理解?修改起来会不会更方便?写代码的人会不会更开心?
    lihongjie0209
        7
    lihongjie0209  
       2018-11-22 20:12:33 +08:00
    这个就和把业务逻辑写在储存过程中一样



    1. 违反了单一职责原则, 你把代码和部署环境强耦合了.
    2. 违反了开闭原则, 扩展性和灵活性肯定不如写在代码中好.
    3. 违反了依赖倒置原则, web 服务器是一种部署方式, 是细节, 业务代码不应该依赖于任何细节.
    4. 违反了过早优化原则, 没有经过测试的优化都是瞎搞.
    2384036992
        8
    2384036992  
    OP
       2018-11-22 22:20:29 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1253 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 17:28 PVG 01:28 LAX 10:28 JFK 13:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86