nginx系列基础架构(7)---nginx动态模块

nginx动态模块

不使用动态模块编译:首先我们下载完nginx源码后,我们使用configure并加入一些模块和第三方模块。这些模块通常是和nginx框架在一起的。通过编译的方式都会编译到nginx的二进制文件中

动态模块编译:经过编译安装后不仅生成了nginx二进制文件,同时还生成了动态模块文件(动态库)
静态库会直接编译到nginx二进制文件中,而动态库在nginx二进制文件中只保留了调用它的地址,我们需要使用到动态库的功能的时候,nginx二进制文件需要先嗲用动态库文件在通过动态库文件使用其中的功能。

演示

-with-http_image_filter_module=dynamic  这样的方式就表示使用动态模块的方式信息编译
  • 重新编安装
yum install gd gd-devel -y

./configure --add-module=../tengine-2.3.3/modules/ngx_slab_stat/ --with-http_image_filter_module=dynamic
  • 配置图片地址
 cat nginx.conf

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
	root /data/product/test;

        location / {
            root   /data/product/test;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

  • 访问

  • 使用http_image_filter动态模块

# 模块位置
pwd
/usr/local/openresty/nginx

ll modules/
总用量 152
-rwxr-xr-x. 1 root root 152168 11月 28 10:07 ngx_http_image_filter_module.so
# 模块使用
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


load_module modules/ngx_http_image_filter_module.so;
# load_module 要放到events 的签名
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
	root /data/product/test;

        location / {
            root   /data/product/test;
            # 使用image_filter 压缩图片
	    image_filter resize 300 300;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

  • 再次访问
    禁用掉缓存,或者强制刷新(Ctrl + F5 或 Ctrl + Shift + R)

posted @ 2021-12-19 10:27  风之老凌  阅读(693)  评论(0)    收藏  举报