在Linux上实现Tengine、Lua、GM按照图片名称自适应大小

转储骆

Tengine的介绍:

说白了就相当于nginx,Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。它的目的是打造一个高效、安全的Web平台。
为大家顺便科普一下nginx
敬请期待


此篇使用的版本

Tengine tengine-master.zip 在https://github.com/alibaba/tengine下载
Lua lua-5.3.1.tar.gz 和 LuaJIT-2.0.4.tar.gz(这个是Lua依赖的包) 在http://www.lua.org/ftp/ 和 http://luajit.org/download.html 下载
GraphicsMagick GraphicsMagick-1.3.18.tar.gz 在https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/ 下载


操作

· 把33个软件包和一个lua的依赖包放到linux里,我的默认位置是/opt/gm/下,并解压到当前文件夹。


安装Lua

这里是直接用linux的yum命令进行下载

安装依赖:

yum -y install readline&readline-devel

在安装gcc的前提下进行make编译,gcc也可以通过yum源来下载
进入lua编译安装:

make&make install

编译安装Lua的依赖包LuaJIT

make&make install

如果运行以下代码成功,说明以上对于lua的安装成功:

lua -v


安装Tengine

进入Tengine根目录
使用configure配置安装路径:

./configure --prefix=/usr/local/Tengine --dso-path=/usr/local/Tengine/modules --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_concat_module --with-http_lua_module --http-proxy-temp-path=/var/tmp/Tengine/proxy_temp --http-fastcgi-temp-path=/var/tmp/Tengine/fastcgi_temp --http-uwsgi-temp-path=/var/tmp/Tengine/uwsgi_temp --http-scgi-temp-path=/var/tmp/Tengine/cgi_temp --http-client-body-temp-path=/var/tmp/Tengine/client_body_temp --http-log-path=/var/log/Tengine/access.log --error-log-path=/var/log/Tengine/error.log

configure需要权限来支配安装,所以需要设置以下:

chmod 777 configure

Tengine配置
编辑conf下的nginx.conf
1.把开头那行user后面的默认值改成root
在这里插入图片描述
2.修改servier_name 的名字

在这里插入图片描述

3.创建图片路径并在配置文件中添加
没有图片的存储路径的时候先创建一个,然后把地址放到名字下面

mkdir -p /data/itrip/uploadimg
在这里插入图片描述
4.location配置
在Linux上实现Tengine、Lua、GM按照图片名称自适应大小_第1张图片
expires 1h; # 缓存时间
add_header Cache-Control max-age=3600; # 缓存时间
access_log /var/log/Tengine/host_access.log;

5。图片裁剪过滤
在第4步的大括号后边加上这大段

location ~* ^(.+.(jpg|jpeg|gif|png))_(\d+)x(\d+).(jpg|jpeg|gif|png)$ {
root /data/itrip/uploadimg; #这里必须设置,否则根目录,即 $document_root 会是 Nginx 默认的 Nginx Root/html,在 Lua 中会得不到期望的值
if (!-f $request_filename) { #如果文件不存在时才需要裁剪
add_header X-Powered-By ‘Lua GraphicsMagick’; #此HTTP Header无实际意义,用于测试
add_header file-path $request_filename; #此 HTTP Header无实际意义,用于测试
lua_code_cache on; #在编写外部 Lua脚本时,设置为off Nginx不会缓存 Lua,方便调试
set $request_filepath /data/itrip/uploadimg$1; #设置原始图片路径,如:/document_root/1.gif
set $width $3; # 设置裁剪/缩放的宽度
set $height $4; # 设置裁剪/缩放的高度
set $ext $5; # 图片文件格式后缀
content_by_lua_file /usr/local/Tengine/lua/ImageResizer.lua; #加载外部 Lua 文件
}
}

最后重启就好

在 sbin/nginx -s stop 是关闭
sbin/nginx 是开启

就是说,Tengine(nginx)指派lua去GM里干活

你可能感兴趣的:(Linux,Tengine,Lua,GM,nginx)