一个群友提到:

用nginx image_filter模块裁图,用!拼宽高能够实现,现在想用参数传宽高总是报错,配置如下:

 

location ~ ^/images/.* {

    if ( $query_string ~ "w=(\d+)&h=(\d+)" ) {

        set $w $1;

        set $h $2;

        rewrite "/images/(.*)" ${uri}!${w}x${h} last;

    }

}

location ~* ^/images/(.*)!(\d+)x(\d+) {

    set $w $2;

    set $h $3;

    image_filter_jpeg_quality 50;

    image_filter resize $w $h;

    image_filter_buffer 10M;

    try_files /images/$1  404;

}

 

在使用这个rewrite规则的时候 主要是想通过query_string传宽和高,通过uri传递是没有问题的。但是报错。

nginx: [emerg] directive "rewrite" is not terminated by ";"

 

然后有其他群友点到:

猜测是引号的问题,加个引号试试

测试了一下,加双引号就好了~

 

我顺带google了下原因,在使用 rewrite "/images/(.*)" ${uri}!${w}x${h} last;    这段时,你是想表达变量,但是{} 被解析成规则的起始和结束标记,为了安全起见 需要带上引号

 

其他讨论:

刚开始用nginx的时候坑过几次,空间快满了,rm掉 nginx的log~~ 结果空间释放不出来。。最后要 lsof 才能发现问题~~

其他建议:

location ~* /img/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ {           
    set $h $2;
    set $w $3;
    if ($h = "0") {
        rewrite /img/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ /img/$1.$4 last;
    }
    if ($w = "0") {
        rewrite /img/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ /img/$1.$4 last;
    }
    #根据给定的长宽生成缩略图
    image_filter resize $h $w;
    #原图最大2M,要裁剪的图片超过2M返回415错误,需要调节参数image_filter_buffer
    image_filter_buffer 2M;                         
    #error_page  415              /img/notfound.jpg;
    try_files /img/$1.$4  /img/notfound.jpg;   
}

location ~* /img {
}

这个rewrite规则作为参考。

最新文章

  1. SAP CRM 将组件整合至导航栏中
  2. 如丝般顺滑地从Windows迁移SQLServer数据库到Linux
  3. 大熊君JavaScript插件化开发------(实战篇之DXJ UI ------ ItemSelector)
  4. Android studio 项目的layout的文件打开,preview 视图无法显示,提示“no sdk found...”可能原因?
  5. 单用户模式下修改root密码
  6. 使用HttpClient操作ASP.NET Web API 2.1增删改查
  7. JavaScript window
  8. lambda表达式————一看就会
  9. 代码神器Atom,最常用的几大插件,你值得拥有。
  10. 千呼万呼使出来Gogland (jetBrains发布的golang IDE)
  11. css中最基本几个选择器
  12. oracle 内连接,外连接
  13. 【mongodb系统学习之十一】mongodb删除数据
  14. 40款非常棒的 jQuery 插件和制作教程(系列一)
  15. 函数中的this与argument对象,以及argument中的callee与caller属性
  16. 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(三)数字拆分
  17. 使用JavaScript完成文字向上间歇滚动
  18. P·C·L 了解
  19. opencv 摄像头
  20. C语言 · s01串

热门文章

  1. cocos代码研究(16)Widget子类RadioButton学习笔记
  2. ng-深度学习-课程笔记-10: 机器学习策略2(Week2)
  3. 计算机bit是什么意思
  4. 大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
  5. java实验五20145204
  6. Javaworkers团队第四周项目总结
  7. burnside引理&polya定理
  8. [微信开发] - weixin4j关键类解析
  9. Validate Binary Search Tree,判断是否是二叉排序树
  10. CentOS6.4x86EngCustomize120g__20160307.rar