linux下 nginx + tomcat 服务器集群 (4)


搭建nginx图片服务器。

网络上搭建的图片服务器,都需要搭建php环境来实时处理图片。

本文将探索使用nginx的image_filter扩展模块来实时处理图片,image_filter通常用来处理图片的缩小,与magic相比,唯一不足之处在于image_filter处理的图片不能无限尺寸。

另外一个不足之处在于image_filter每次都会重新生成图片,影响了响应速度。

针对以上不足之处,本文将立足于一个全新的思路来架构nginx图片服务器。

首先通过配置image_filter所需的内存,来增大图片的尺寸;同时设置nginx缓存代理服务器,来缓存每次生成的图片,提高响应速度。

实践证明,这样的架构简洁明了,能满足绝大多数网站的需要。


1、准备数据

mkdir domain/images    // 建立图片目录

mkdir domain/cache     // 建立图片缓存目录

wget http://www.zdzsoft.com/sample/test1.jpg  获取测试图片


2、编译nginx

(1)安装libtool

wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz

tar -zxvf libtool-2.4.tar.gz

cd libtool-2.4

./configure --prefix=/usr/local
make

make install

(2)安装jpeg6

wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz

tar -zxvf jpegsrc.v6b.tar.gz

cd jpeg-6b

./configure --enable-shared --enable-static
make
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
make clean
./configure --enable-shared --enable-static
make
mkdir /usr/local/man/man1
make install
(3)安装zip
下载: zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gzzlib-1.2.8
cd
./configure
make
make install
(4)安装png
下载: libpng-1.6.16.tar.gz
tar -zxvf libpng-1.6.16.tar.gz
mv zlib-1.2.8 zlib
cd libpng-1.6.16
cp scripts/makefile.stdmakefile
make
make install
(5)安装gd
yum remove gd
yum install gd
yum install gd-devel  // 安装gd图片类库

(6)安装nginx

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

rm -rf nginx-1.7.10 删除原有文件夹

tar -zxvf nginx-1.7.10.tar.gz

cd nginx-1.7.10

./configure --with-http_stub_status_module --with-http_image_filter_module --prefix=/usr/local/nginx

make

make install

测试安装是否正确:  /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


3、配置图片服务器

location ~* /images/(.*)_([\d]+)x([\d]+).(jpg|gif|png)$ {
            root         /home/Server/domain/;
            #image_filter resize 150 100;
            #image_filter size;
            #image_filter rotate 90;
            #image_filter_buffer 10M;
            set $h $2;
            set $w $3;
            image_filter resize $h $w;
            image_filter_buffer 10M;
            image_filter_jpeg_quality 90;
            try_files /images/$1.$4 /images/notfound.jpg;
         }









发布了10 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/popman320/article/details/44018805