一 前言
网页中有很多图片,我们经常需要对图片进行一些基本的加工和处理,常见操作的有裁剪、伸缩、旋转、加水印、格式转换等。
本文将使用开源的技术,主要使用 ImageMagick 和 OpenResty,通过编写少量的 Lua 代码和 Nginx 配置文件修改,来实现一个简单的图片处理服务,ImageMagick 处理图片会略耗资源,因此我们对已经处理过的图片用Redis做缓存,相同的URL请求再次过来时,目标图片会从 Redis 里获取并返回。
二 环境准备
本文所用的环境为滴滴云 Centos 7.4 版本,在搭建之前可以先准备一台云服务器。
三 开源软件安装
3.1 安装 OpenResty
进 OpenResty 的官网 http://openresty.org/cn/download.html 选择一个相对稳定的版本下载,我选择的版本是1.13.6.1。
1) 创建下载目录
mkdir -p /root/zhangjie/tools
2)下载
cd /root/zhangjie/tools
wget https://openresty.org/download/openresty-1.13.6.1.tar.gz
3)解压
tar zxvf openresty-1.13.6.1.tar.gz
4)安装依赖的包
yum -y install pcre-devel openssl-devel gcc gcc-c++ curl
5)编译和安装
mkdir -p /opt/app/openresty
cd openresty-1.13.6.1
./configure --prefix=/opt/app/openresty --with-luajit
make -j2
make install
6) 确认安装成功
a) 启动和检查进程
cd /opt/app/openresty/nginx
sbin/nginx
ps -ef|grep nginx
root 11950 1 0 16:54 ?00:00:00 nginx: master process sbin/nginx
nobody 11951 11950 0 16:54 ?00:00:00 nginx: worker process
root 11955 2510 0 16:54 pts/000:00:00 grep --color=auto nginx
b) Windows下外网IP浏览
在浏览器里打开网址:
http://116.85.17.20
显示如下图所示的页面,即表示安装成功
c) 检查Lua环境是否装成功
增加配置:
vi conf/nginx.conf
user nobody;
worker_processes 2;
…
http {
...
server {
...
location = /hello_lua {
add_header Content-Type text/plain;
content_by_lua '