续我的上上篇博文:https://mp.csdn.net/postedit/89519809。即本篇博文是在上篇博文修改完之后的nginx.conf文件中进行修改的。(因为本篇博文在安装带有模块http_realip_module和http image filter module=dynamic的nginx1.14服务时,并没有执行“make install”的操作,所以nginx.conf文件还是之前配置过的nginx.conf文件)
一、实验环境(rhel7.3版本)
1、selinux和firewalld状态为disabled
2、各主机信息如下:
主机 | ip |
---|---|
server1 | 172.25.83.1 |
二、安装带有模块http_realip_module和http_image_filter_module=dynamic的nginx1.14服务
前期准备:
- 停掉之前开启的nginx服务
- 清空缓存(删除之前安装nginx服务生成的Makefile文件和objs目录)
[root@server1 ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/usr/local/nginx --with-http_realip_module #我们可以看到之前安装的nginx1.14服务,只安装了http_realip_module模块
[root@server1 ~]# /usr/local/nginx/sbin/nginx -s stop
[root@server1 ~]# cd nginx-1.14.2/
[root@server1 nginx-1.14.2]# make clean
rm -rf Makefile objs
安装带有模块http_realip_module和http_image_filter_module=dynamic的nginx1.14服务
[root@server1 ~]# yum install gd-devel-2.0.35-26.el7.x86_64.rpm -y #安装预编译需要的依赖包gd-devel
[root@server1 ~]# cd nginx-1.14.2/
[root@server1 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic #进行预编译
[root@server1 nginx-1.14.2]# ls #可以看到生成了Makefile文件和objs目录
auto CHANGES.ru configure html Makefile objs src
CHANGES conf contrib LICENSE man README
[root@server1 nginx-1.14.2]# vim objs/ngx_modules.c #在objs目录下的ngx_modules.c文件中可以查看安装好的模块。但是这里面只能看到http_realip_module模块,而看不到http_image_filter_module模块
&ngx_http_realip_module, #可以看到有http_realip_module模块
[root@server1 nginx-1.14.2]# make #编译
[root@server1 nginx-1.14.2]# cd objs/
[root@server1 objs]# ls #在该目录下可以看到http_image_filter_module模块
autoconf.err ngx_http_image_filter_module_modules.c
Makefile ngx_http_image_filter_module_modules.o
nginx ngx_http_image_filter_module.so
nginx.8 ngx_modules.c
ngx_auto_config.h ngx_modules.o
ngx_auto_headers.h src
[root@server1 objs]# mkdir /usr/local/nginx/modules #需要新建一个modules目录,来存放模块http_image_filter_module
[root@server1 objs]# cp ngx_http_image_filter_module.so /usr/local/nginx/modules/
[root@server1 nginx-1.14.2]# cp objs/nginx /usr/local/nginx/sbin/nginx #将生成的新的nginx二进制文件拷贝到/usr/local/nginx/sbin/目录下(覆盖之前该目录下的nginx文件)
cp: overwrite ‘/usr/local/nginx/sbin/nginx’? y
[root@server1 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic #可以看到安装时添加的模块
三、使用image_filter生成缩略图
在使用image_filter生成缩略图之前,我们先在浏览器进行查看,查看没有进行缩略的图片,以便形成对比,看出效果。
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf #在该配置文件的第一行添加如下的内容,以使用http_image_filter模块;并在之前编写的location模块中添加如下56行的内容(对图片进行缩略的操作)
1 load_module modules/ngx_http_image_filter_module.so; #该地址是相对地址,是相对于/usr/local/nginx的地址。
52 location /download/ {
53 limit_conn addr 1;
54 #limit_rate 50k;
55 limit_req zone=one burst=5;
56 image_filter resize 100 200;
57 }
[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload #修改完配置文件之后,重新加载nginx服务
在浏览器进行查看,查看缩略之后的图片,是不是比之前的图片要小。