文档章节

nginx+lua_nginx+GraphicsMagick生成实时缩略图

langke
 langke
发布于 2016/08/03 17:18
字数 439
阅读 24
收藏 0

安装graphi magic

wget http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.16/GraphicsMagick-1.3.16.tar.gz/download

./configure --prefix=/usr/local/GraphicsMagick-1.3.16

make;make install

 

安装nginx需要的模块如下

liujit             http://luajit.org  

ngx_devel_kit      https://github.com/simpl/ngx_devel_kit  

echo-nginx-module  https://github.com/agentzh/echo-nginx-module  

lua-nginx-module   https://github.com/chaoslawful/lua-nginx-module 

#下载luajit
 http://luajit.org/download/LuaJIT-2.0.0-beta10.tar.gz
cd  LuaJIT-2.0.0-beta10
make && make install PREFIX=/usr/local/lj2
  ln -sf luajit-2.0.0-beta10 /usr/local/lj2/bin/luajit
#下载  ngx_devel_kit 模块
 https://github.com/simpl/ngx_devel_kit/zipball/master
 unzip simpl-ngx_devel_kit-v0.2.17-10-g4192ba6.zip 
#下载 lua-nginx-module 模块
https://github.com/chaoslawful/lua-nginx-module/tarball/master
unzip chaoslawful-lua-nginx-module-v0.6.0-3-g936653c.zip 
#下载echo
https://github.com/agentzh/echo-nginx-module/zipball/master
unzip echo-nginx-module.zip 
#下载cache
http://labs.frickle.com/files/ngx_cache_purge-1.6.tar.gz
tar zvxf ngx_cache_purge-1.6.tar.gz
#下载nginx

 wget http://nginx.org/download/nginx-1.2.1.tar.gz 

tar zvxf nginx-1.2.1.tar.gz 

 

设置环境变量

 

export LUAJIT_LIB=/usr/local/lj2/lib

export LUAJIT_INC=/usr/local/lj2/include/luajit-2.0

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH 

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

GM_HOME=/usr/local/GraphicsMagick-1.3.16;

PATH=$GM_HOME/bin:$PATH;

export PATH

export GM_HOME

使环境变量生效:source /etc/profile

编译参数:

--prefix=/usr/local/nginx --user=tomcat --with-http_stub_status_module --add-module=/usr/src/simpl-ngx_devel_kit-4192ba6 --with-ld-opt=-Wl,-rpath,/usr/local/lj2/lib --add-module=/usr/src/ngx_cache_purge-1.6 --with-http_perl_module --add-module=/usr/src/chaoslawful-lua-nginx-module-936653c --add-module=/usr/src/agentzh-echo-nginx-module-b3ad5c1

注意:图片存储目录的用户需要跟nginx运行用户是同一用户,否则会出现缩略图文件不可写情况

lua模块测试

nginx.conf配置

location /lua1 {

    default_type 'text/plain';

    content_by_lua 'ngx.say("hello, lua")';

}

 

        location  /image {

            set $image_root /mnt/mfs/web/sq/webroot;

            set $file "$image_root$uri";

            if (!-f $request_filename) {

                   rewrite_by_lua '

                      local index = string.find(ngx.var.uri, "([0-9]+)x([0-9]+)");

                      local originalUri = string.sub(ngx.var.uri, 0, index-2);

                      local area = string.sub(ngx.var.uri, index);

                      index = string.find(area, "([.])");

                      area = string.sub(area, 0, index-1);

                      local image_sizes = {"140x140", "800x800", "90x90"};

 

                      function table.contains(table, element)

                         for _, value in pairs(table) do

                            if value == element then

                               return true

                            end

                         end

                         return false

                      end

 

                      if table.contains(image_sizes, area) then

                         local command = "/usr/local/GraphicsMagick-1.3.16/bin/gm convert " .. ngx.var.image_root ..  originalUri  .. " -thumbnail " .. area .. " -gravity center -extent " .. area .. " " .. ngx.var.file;

                         os.execute(command);

                      else

                         ngx.exit(401);

                      end;

                   ';

            }

            alias /mnt/mfs/web/sq/webroot/image/;

            expires 7d;

 

        }

访问图片在原图片url后加.140x140.jpg

 

 

 

本文转载自:http://www.cnblogs.com/langke93/archive/2012/08/26/2657425.html

下一篇: hbase0.95.2部署
langke
粉丝 1
博文 70
码字总数 3645
作品 0
架构师
私信 提问
nginx生成缩略图配置 – ttlsa教程系列之nginx

为了手机端浏览到与手机分辨率相匹配的图片,提高app访问速度以及减少用户的手机流量,需要将图片生成缩略图,这边共有以下解决方案。 A. 发布新闻生成多重缩略图 – 无法匹配到各种尺寸图片...

凯文加内特
2016/04/21
83
0
tengine+lua实现时时在线图片缩放,剪切。

tengine+lua实现时时在线图片缩放,剪切。 Posted on 18 , 九月 2012 in 未分类 author: Syang tenginx+lua+shell(conver)+其实也是nginx+lua,因为项目的需求变化,包括界面改版的变化,以至...

epiclight
2015/06/07
0
0
nginx实时生成缩略图到硬盘上

现在随着各终端的出现(手机,ipad等平板),以及各种终端的手机分辨率和尺寸都不同,现在手机用户流量都是宝,网上出现了各种各样的生成缩略图功能的架构,有使用php实时生成缩略图的,也有用n...

小运
2013/08/24
0
2
Nginx Image 缩略图

现在随着各终端的出现(手机,ipad等平板),以及各种终端的手机分辨率和尺寸都不同,现在手机用户流量都是宝,网上出现了各种各样的生成缩略图功能的架构,有使用php实时生成缩略图的,也有用n...

张志浩
2013/10/21
0
0
ftp+nginx+lua_Nginx+GraphicsMagick来实现目录浏览、实时缩略图

一、FTP服务器安装配置 1、rpm -ivh vsftpd-2.2.2-11.el6_4.1.i686.rpm 2、service vsftpd start 3、chkconfig vsftpd on 4、配置 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak......

lrtao2010
2016/06/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2019年普通高校在川招生专业及名额介绍文科 带学费

2019年普通高校在川招生专业及名额介绍文科 带学费

asdtiang
17分钟前
1
0
springCloud配置中心config配置svn(踩坑记录)(基于consul)

新建一个config Server模块; 引入如下依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependency>......

为何不可1995
17分钟前
0
0
mysql相关tips(持续更新)

1.字符集:utf8mb4 mysql 5.5.3之后出来的字符集,占用1-4个字节,最大占用的字节数为4.目前这个字段主要应用在(Emoji表情)。utf8mb4兼容utf8(1-3个字节),且比utf8能表示更多的字符。什...

lara_
17分钟前
0
0
微服务开源生态报告 No.1

从关注开源,到使用开源,再到参与开源贡献,越来越多的国内开发者通过开源技术来构建业务。 截止目前,Arthas / Dubbo / ChaosBalde / Nacos / RocketMQ / Seata / Sentinel / Spring Clou...

阿里云官方博客
20分钟前
1
0
MaxCompute 费用暴涨之存储压缩率降低导致SQL输入量变大

现象:同样的SQL,每天处理的数据行数差不多,但是费用突然暴涨甚至会翻数倍。 分析: 我们先明确MaxCompute SQL后付费的计费公式:一条SQL执行的费用=扫描输入量 ️ SQL复杂度 ️ 0.3(¥/GB...

zhaowei121
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部