There are numerous ways to install NGINX. When you compile and install NGINX from source code you have the option to include specific modules and compile NGINX with certain flags. Sometimes you may need to find out the NGINX modules & compiled flags that you had used during installation. In this article, we will look at how to list NGINX modules & compiled flags.
How to List NGINX Modules & Compiled Flags
It is very easy to list NGINX modules & compiled flags using the following command.
$ sudo nginx -V
Please note you need to use capital V above. If you use lowercase v then it will show NGINX version.
When you run the above command, you will see an output similar to the one below.
nginx version: nginx/1.18.0 (Ubuntu) built with OpenSSL 1.1.1f 31 Mar 2020 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-5J5hor/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --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 --modules-path=/usr/lib/nginx/modules --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-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
As you can see, it is difficult to understand the above output.
Also read : How to Redirect HTTP to HTTPS on Custom Port
So here is the above command modified to present the compiled modules in a neat manner. The following command will list each module in a separate line.
$ nginx -V 2>&1 | tr ' ' '\n'
If you want to list specific modules, you can pass the above command’s output to grep command. For example, here is the command to list all ssl-related commands.
$ nginx -V 2>&1 | tr ' ' '\n' | grep 'ssl' --with-http_ssl_module --with-mail_ssl_module --with-stream_ssl_module --with-stream_ssl_preread_module
As you can see, it is very simple to get a list of NGINX modules & compiled flags.
Also read : How to Rsync Files between Two Servers