download

Now days Nginx has proven itself as a primary choice for running scalable web architecture , specially for heavy traffic websites. It has also established itself as a feature rich webserver with lot of open source enthusiast contributing towards the module development.

Nginx Cache Purge module is one of the Nginx’s very useful module , which helps in clearing/purging the fastcgi cache in case fastcgi caching is enabled. Let us check out on how can we recompile Nginx with cache purge module on Ubuntu platform

Server:-

Distributor ID: Ubuntu
Description   : Ubuntu 12.04.4 LTS
Release       : 12.04
Codename      : precise

Nginx Info. :-

Version       : 1.6.2

Module        : ngx_cache_purge-master

Module version: 2.2

 

Configuration steps:-

Step 1:- Make directory with any name in any location which will be utilized for downloading the nginx source package

mkdir custom1.6.2

cd custom6.2

Step 2 :- Now install prerequisite packages  used to compile Nginx source and download the latest Nginx source from the respository

sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip  python-software-properties software-properties-common

sudo add-apt-repository ppa:nginx/stable

sudo apt-get update

sudo apt-get source nginx

Step 3:- Download the latest stable version of Nginx cache purge module source (Currently latest stable version is v2.2 ) :-

wget https://github.com/FRiCKLE/ngx_cache_purge/archive/master.zip

unzip master.zip

cp  -pr ngx_cache_purge-master  nginx-1.6.2/debian/modules/

Step 4 :- Add the nginx cache module in nginx rule:-

Now go to the rules file and add (–add-module=$(MODULESDIR)/ngx_cache_purge-master\) in full configure flags

vi nginx-1.6.2/debian/rules



full_configure_flags := \
$(common_configure_flags) \
--with-http_addition_module \
--with-http_dav_module \
--with-http_geoip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module \
--with-http_spdy_module \
--with-http_sub_module \
--with-http_xslt_module \
--with-mail \
--with-mail_ssl_module \
--add-module=$(MODULESDIR)/nginx-auth-pam \
--add-module=$(MODULESDIR)/ngx_cache_purge-master\
--add-module=$(MODULESDIR)/nginx-dav-ext-module \
--add-module=$(MODULESDIR)/nginx-echo \
--add-module=$(MODULESDIR)/nginx-upload-progress \
--add-module=$(MODULESDIR)/nginx-upstream-fair \
--add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module

Step 5 :- Compile the nginx source to produce a deb file using dpkg-buildpackage command

cd nginx-1.6.2

sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip  dh-systemd libgd2-noxpm-dev libluajit-5.1-dev liblua5.1-0-dev libmhash-dev libpam0g-dev libperl-dev

dpkg-buildpackage -uc -b -j2

Step 6 :- Check deb file:-

cd ../

ls

Result of ls

nginx_1.6.2-5+precise0_all.deb
nginx_1.6.2-5+precise0_amd64.changes
nginx_1.6.2-5+precise0.debian.tar.gz
nginx_1.6.2-5+precise0.dsc
nginx_1.6.2.orig.tar.gz
nginx-common_1.6.2-5+precise0_all.deb
nginx-doc_1.6.2-5+precise0_all.deb
nginx-extras_1.6.2-5+precise0_amd64.deb
nginx-extras-dbg_1.6.2-5+precise0_amd64.deb
nginx-full_1.6.2-5+precise0_amd64.deb
nginx-full-dbg_1.6.2-5+precise0_amd64.deb
nginx-light_1.6.2-5+precise0_amd64.deb

Step 7 :- Install nginx and check the module:-

dpkg -i nginx-common_1.6.2-5+precise0_all.deb nginx-full_1.6.2-5+precise0_amd64.deb

if you are getting some error in installation try the following:-

apt-get install -f

Check for the presence of Nginx cache purge module in current installation using Verbose switch :-

nginx -V

Result:-

nginx version: nginx/1.6.2
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security 
-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock 
--pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi
 --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
 --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module
 --with-http_gzip_static_module --with-http_image_filter_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module
 --with-mail --with-mail_ssl_module --add-module=/root/custom-1.6.2/nginx-1.6.2/debian/modules/nginx-auth-pam 
--add-module=/root/custom-1.6.2/nginx-1.6.2/debian/modules/ngx_cache_purge-2.2 
--add-module=/root/custom-1.6.2/nginx-1.6.2/debian/modules/nginx-dav-ext-module 
--add-module=/root/custom-1.6.2/nginx-1.6.2/debian/modules/nginx-echo 
--add-module=/root/custom-1.6.2/nginx-1.6.2/debian/modules/nginx-upload-progress 
--add-module=/root/custom-1.6.2/nginx-1.6.2/debian/modules/nginx-upstream-fair