Nginx+lua_Nginx+GraphicsMagick来实现实时缩略图
1、安装GraphicsMagick
cd /usr/local/src wget http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.20/GraphicsMagick-1.3.20.tar.gz/download tar -zxvf GraphicsMagick-1.3..tar.gz cd GraphicsMagick-1.3. ./configure --prefix=/usr/local/GraphicsMagick make && make install
2、下载luajit
wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz tar -zxvf LuaJIT-2.0..tar.gz cd LuaJIT-2.0. make && make install PREFIX=/usr/local/lj2 ln -sf LuaJIT-2.0. /usr/local/lj2/bin/luajit
3、下载 ngx_devel_kit 模块
wget https://github.com/simpl/ngx_devel_kit/archive/master.zip unzip master.zip
4、下载 lua-nginx-module 模块
https://github.com/openresty/lua-nginx-module/archive/master.zip unzip master.zip
5、下载echo
https://github.com/agentzh/echo-nginx-module/zipball/master unzip echo-nginx-module.zip
6、下载cache
wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz tar -zxvf ngx_cache_purge-2.1.tar.gz cd ngx_cache_purge-2.1 ...
7、下载nginx
wget http://nginx.org/download/nginx-1.7.5.tar.gz
...
8、设置环境变量
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; PATH=$GM_HOME/bin:$PATH; export PATH export GM_HOME source /etc/profile
9、nginx 编译安装
--prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/usr/src/simpl-ngx_devel_kit --with-ld-opt=-Wl,-rpath,/usr/local/lj2/lib --add-module=/usr/src/ngx_cache_purge-2.1 --with-http_perl_module --add-module=/usr/local/src/lua-nginx-module --add-module=/usr/local/src/echo-nginx-module-master
如果编译有错,请把pcre扩展附加上
10、nginx配置
11、虚拟目录vhost
server {
listen ;
server_name image.host.com;
root /usr/local/nginx/html/test;
index index.html index.htm index.php;
location /lua1 {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
location /image {
set $image_root /usr/local/nginx/html/test;
set $file "$image_root$uri";
if (!-f $file) {
rewrite_by_lua '
local index = string.find(ngx.var.uri, "([0-9]+)x([0-9]+)");
if (index == nil) then
ngx.exit();end;
local originalUri = string.sub(ngx.var.uri, , index-);
local area = string.sub(ngx.var.uri, index);
index = string.find(area, "([.])");
area = string.sub(area, , index-);
local image_sizes = {"160x160","400x300"};
local image_big = {"80x60^", "120x90^", "160x120^"};
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
# print(table.contains(image_big, area))
if table.contains(image_big, area) then
local command = "/usr/local/GraphicsMagick/bin/gm convert " .. ngx.var.image_root .. originalUri .. " -thumbnail " .. area .. " -background gray -gravity center -extent " .. area .. " " .. ngx.var.image_root .. ngx.var.uri
os.execute(command);
else
if table.contains(image_sizes, area) then
local command = "/usr/local/GraphicsMagick/bin/gm convert " .. ngx.var.image_root .. originalUri .. " -thumbnail " .. area .. " " .. ngx.var.image_root .. ngx.var.uri;
os.execute(command);
else
ngx.exit();
end;
end;
';
}
# alias /usr/local/nginx/html/test/image;
expires 7d;
}
}
12、赋予权限
chmod o+w /usr/local/nginx/html/test/image
13、访问
原地址:http://image.rose.com/image/2.jpg
缩略图地址:http://image.rose.com/image/2.jpg.400x300.jpg
Nginx+lua_Nginx+GraphicsMagick来实现实时缩略图的更多相关文章
- nginx+lua_nginx+GraphicsMagick生成实时缩略图
暂做笔记,带后续验证通过后,再补充 1.2.3 步. 一.安装 lua 首先确认是否安装 readline yum -y install readline-devel ncurses-devel 进入 ...
- Nginx 整合 Lua 实现动态生成缩略图
原文地址:Nginx 整合 Lua 实现动态生成缩略图 博客地址:http://www.extlight.com 一.前提 最近在开发一个项目,涉及到缩略图的功能,常见的生成缩略图的方案有以下几个: ...
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
http://www.hopesoft.org/blog/?p=1188 http://www.imagemagick.org/download/ 2.用法 原始图片是input.jpg,尺寸:160 ...
- Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx
第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...
- 如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放
如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放 参考网站:nginx-lua-fas ...
- nginx实现本地图片生成缩略图
nginx可以实现图片的缩略图效果,很多网站为了前端静态资源相应的性能会给大图自动生成一个小图,比如我们经常会在网上看到bd_64x64.png这种格式,淘宝上的小图经常会看到xxx.jpg_100x ...
- GoAccess安装及分析nginx实时日志
GoAccess是一个基于终端的快速日志分析器.其核心思想是实时快速分析和查看Web服务器统计信息,而无需使用您的浏览器(如果您希望通过SSH快速分析访问日志,或者只是喜欢在终端中工作),终端输出是默 ...
- 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
序:一年多没更新博客园的内容了,core已经发生了翻天覆地的变化,想起2014年这时候,我就开始了从当时还叫k的那套preview都不如的vnext搭建这套系统,陆陆续续它每一次升级,我也相应地折腾, ...
- Nginx-rtmp 直播媒体实时流实现
0. 前言 这段时间在搭建一个IPCamera项目服务器.视频点对点通话,客户端会查看设备端的音视频实时流.为了省流量,是通过P2P进行穿透.但是由于NAT设备的原因和IPV4的枯竭.有些设备是无法进 ...
随机推荐
- 如何实现echarts组织结构图节点的收缩
echarts本身没有组织结构图的节点收缩功能,因为项目需求要用到此功能. 引入的echarts必须是2版本的,因为3.0取消了对组织结构图的支持.下载2版本的源码,找到关于onclick事件那部分的 ...
- 9 关联管理器(RelatedManager)
知识预览: class RelatedManager class RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器.它存在于下面两种情况: ...
- Oracle诊断:在程序的运行中,有时候数据库会断开连接
在程序的运行中,有时候数据库会断开连接,然后报下面错误: ORA-12519: TNS:no appropriate service handler found 可用的服务处理程序没有找到. 1. ...
- Hyperledger交易流程
Hyperledger Fabric Network中的角色 在Hyperledger中,由三种类型的角色: Client:应用客户端,用于将终端用户的交易请求发送到区块链网络: Peers:负责维护 ...
- 移动端续讲及zepto移动端插件外加touch插件介绍
媒体查询:针对不同设备,显示不同的样式. 设备像素比:dpr device-piexl-ratio 在he开发中,要一个3陪高清图片: 1080>=320*3 (主要是为了解决图片的失真问题) ...
- Android.mk【转】
本文转载自:http://android.mk/#simple Secrets of Android.mk Introduction to Android.mk: This document desc ...
- Illegal modifier for parameter *** , only final is permitted”
大家好,我想在main函数中定义一个public变量,系统报错说“Illegal modifier for parameter chatRoom, only final is permitted”,如 ...
- oracle查询语句,根据中文的拼音排序
SELECT * FROM USER t ORDER BY nlssort(FIRSTNAME, 'NLS_SORT=SCHINESE_PINYIN_M')
- Delphi XE2 之 FireMonkey 入门(9) - TBitmap
TBitmap 主要成员: { 方法 } SetSize(); //设置大小 Clear(); //取消, 就是用指定颜色覆盖 ClearRec ...
- selenium验证码处理之cookie登录
在实际测试中会经常见到登录操作需要验证码验证登录 常见验证有以下几种: 验证码登录 图片识别 图片滑块识别验证 4.简单验证码计算 针对上面的登录验证解决办法有以下几种: 1.让开发去掉验证码 ...