安装 Nginx 的模块可以通过编译时添加模块或使用动态加载模块的方式实现。以下是两种方法的详细步骤:
方法一:编译时添加模块
-
下载 Nginx 源码:
wget http://nginx.org/download/nginx-1.21.3.tar.gz tar -zxvf nginx-1.21.3.tar.gz cd nginx-1.21.3
-
安装依赖:
sudo apt-get update sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
-
配置编译选项:
使用--with-http_ssl_module
、--with-http_gzip_module
等选项来添加所需的模块。例如:./configure --with-http_ssl_module --with-http_gzip_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-threads --with-stream --with-stream_ssl_module --with-http_auth_request_module --with-http_image_filter_module --with-http_geoip_module --with-http_perl_module --with-compat --add-dynamic-module=/path/to/module
-
编译和安装:
make sudo make install
方法二:动态加载模块
Nginx 从 1.9.11 版本开始支持动态加载模块。以下是动态加载模块的步骤:
-
下载 Nginx 源码:
wget http://nginx.org/download/nginx-1.21.3.tar.gz tar -zxvf nginx-1.21.3.tar.gz cd nginx-1.21.3
-
安装依赖:
sudo apt-get update sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
-
配置编译选项:
使用--with-stream
、--with-http_ssl_module
等选项来添加所需的模块,并启用动态模块支持。例如:./configure --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-threads --with-stream --with-stream_ssl_module --with-http_auth_request_module --with-http_image_filter_module --with-http_geoip_module --with-http_perl_module --with-compat --add-dynamic-module=/path/to/module
-
编译和安装:
make sudo make install
-
编译动态模块:
如果你需要编译一个动态模块,可以单独编译并安装。例如,编译http_geoip_module
:cd /path/to/nginx-1.21.3 ./configure --add-dynamic-module=/path/to/http_geoip_module make sudo cp objs/ngx_http_geoip_module.so /usr/local/nginx/modules/
-
配置 Nginx 加载动态模块:
编辑 Nginx 配置文件/usr/local/nginx/conf/nginx.conf
,在http
块中添加load_module
指令:http { load_module modules/ngx_http_geoip_module.so; # 其他配置 }
-
重启 Nginx:
sudo /usr/local/nginx/sbin/nginx -s reload
示例:安装 http_cache_purge_module
模块
-
下载 Nginx 源码和模块源码:
wget http://nginx.org/download/nginx-1.21.3.tar.gz tar -zxvf nginx-1.21.3.tar.gz cd nginx-1.21.3 git clone https://github.com/fceller/nginx-cache-purge.git
-
安装依赖:
sudo apt-get update sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
-
配置编译选项:
./configure --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-threads --with-stream --with-stream_ssl_module --with-http_auth_request_module --with-http_image_filter_module --with-http_geoip_module --with-http_perl_module --with-compat --add-dynamic-module=./nginx-cache-purge
-
编译和安装:
make sudo make install
-
配置 Nginx 加载动态模块:
编辑 Nginx 配置文件/usr/local/nginx/conf/nginx.conf
,在http
块中添加load_module
指令:http { load_module modules/ngx_cache_purge_module.so; # 其他配置 }
-
重启 Nginx:
sudo /usr/local/nginx/sbin/nginx -s reload