Linux下安装带有模块http_realip_module和http_image_filter_module=dynamic的nginx1.14服务+使用image_filter生成缩略图

续我的上上篇博文: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版本)

1selinux和firewalld状态为disabled

2各主机信息如下:

主机 ip
server1 172.25.83.1

二、安装带有模块http_realip_module和http_image_filter_module=dynamic的nginx1.14服务

前期准备:

  1. 停掉之前开启的nginx服务
  2. 清空缓存(删除之前安装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]# 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]# cd ..
[root@server1 nginx-1.14.2]# make   #编译



[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服务

在浏览器进行查看,查看缩略之后的图片,是不是比之前的图片要小。

猜你喜欢

转载自blog.csdn.net/qq_42303254/article/details/89526863
今日推荐