账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx不能实现正则批配,是什么原因?
    63
    0

    我的nginx -V信息如下:

    nginx -V
    nginx version: nginx/1.14.2
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
    configure arguments: --prefix=/usr/local/nginx --add-module=/usr/local/src/lua-nginx-module-0.10.13 --add-module=/usr/local/src/ngx_devel_kit-0.3.0

    我的nginx vhost配置文件如下:

    server{
        listen       80;
            server_name  t1.xxx.com;
            
          location / {
                root /t1/html;
                index index.html index.htm;
          }
      
        location /test_lua { 
          default_type 'text/plain'; 
          content_by_lua 'ngx.say("hello, lua")'; 
        }
         #这个就是无法批配并正常显示以下相应图片链接信息,求解!!!
        location ~* ^((\/manager)(\/\w+)(.+\.(jpg|jpeg|gif|png))_(\d+)+x(\d+)+\.(jpg|jpeg|gif|png))$ {
                set $para1 $1;
                set $para2 $2;
                set $para3 $3;
                set $para4 $4;
                set $para5 $5;
                set $para6 $6;
                set $para7 $7;
                set $para8 $8;
                set $para9 $9;
                default_type 'text/plain';
                content_by_lua_block {
                        ngx.say(ngx.var.para1)
                        ngx.say(ngx.var.para2)
                        ngx.say(ngx.var.para3)
                        ngx.say(ngx.var.para4)
                        ngx.say(ngx.var.para5)
                        ngx.say(ngx.var.para6)
                        ngx.say(ngx.var.para7)
                        ngx.say(ngx.var.para8)
                        ngx.say(ngx.var.para9)
                }
    
        }
    
      
        error_log   /usr/local/nginx/logs/error_t1.log    error;
          access_log  off;
    }
    

    求大师解答!!!感谢!!!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 習慣了孤單 普通会员 1楼

      Nginx不能实现正则批配的原因主要有以下几点:

      1. Nginx本身并不支持正则表达式解析:Nginx是一个反向代理服务器,它的主要功能是转发HTTP请求到后端服务器,而不是处理复杂的正则表达式解析。因此,Nginx不能直接实现正则批配。

      2. Nginx的配置文件结构复杂:Nginx的配置文件结构比较复杂,需要多次使用"if"和"then"等条件语句来实现正则表达式的匹配和替换。这使得正则批配变得非常复杂和难以实现。

      3. Nginx的正则表达式规则不够灵活:Nginx的正则表达式规则比较固定,不能满足复杂的正则表达式需求。例如,Nginx不能匹配和替换符合特定格式的字符串,如URL的协议和主机名。

      4. Nginx的安全性问题:Nginx的安全性问题也是一个主要限制因素。例如,Nginx可能会被恶意用户利用,进行攻击和破坏。这使得正则批配变得非常危险,需要谨慎处理。

      5. Nginx的性能问题:Nginx的性能问题也可能影响正则批配的实现。例如,如果Nginx需要处理大量的请求,可能会导致性能下降,影响正则表达式匹配和替换的效率。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部