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配置
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里干活