Nginx - Installation


Nginx default installation is to use a package.

This default installation install some core module and also the below one. See module:

See the whole list here

but when you want to add a module, you need to build them against the nginx source



Example with CentOS. This will install this package if you are on CentOs7.

  • Add the EPEL repository
yum install -y nginx
# or
# with the verions
yum install -y nginx-1.16.1


Ref doc

This installation will make the same installation than the package one.

Install the dependencies

  • Install the nginx dependency packages. There is more than in the documentation because we are also adding most of the module.
yum install -y redhat-rpm-config openssl-devel gc gcc gcc-c++ pcre-devel zlib-devel make wget libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools gperftools-devel libatomic_ops-devel perl-ExtUtils-Embed

Download Nginx

tar zxf nginx-1.16.1.tar.gz


The configuration option are the same than when you install from a centos package (ie the output of nginx -V)

The documentation for each of this options can be found:

cd nginx-1.16.1
./configure   \
   --prefix=/usr/share/nginx \ 
   --sbin-path=/usr/sbin/nginx \ 
   --modules-path=/usr/lib64/nginx/modules \ 
   --conf-path=/etc/nginx/nginx.conf \ 
   --error-log-path=/var/log/nginx/error.log \ 
   --http-log-path=/var/log/nginx/access.log \ 
   --http-client-body-temp-path=/var/lib/nginx/tmp/client_body \ 
   --http-proxy-temp-path=/var/lib/nginx/tmp/proxy \ 
   --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi \ 
   --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi \ 
   --http-scgi-temp-path=/var/lib/nginx/tmp/scgi \ 
   --pid-path=/run/ \ 
   --lock-path=/run/lock/subsys/nginx \ 
   --user=nginx \ 
   --group=nginx \ 
   --with-file-aio \ 
   --with-ipv6 \ 
   --with-http_ssl_module \ 
   --with-http_v2_module \ 
   --with-http_realip_module \ 
   --with-stream_ssl_preread_module \ 
   --with-http_addition_module \ 
   --with-http_xslt_module=dynamic \ 
   --with-http_image_filter_module=dynamic \ 
   --with-http_sub_module \ 
   --with-http_dav_module \ 
   --with-http_flv_module \ 
   --with-http_mp4_module \ 
   --with-http_gunzip_module \ 
   --with-http_gzip_static_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-http_perl_module=dynamic \ 
   --with-http_auth_request_module \ 
   --with-mail=dynamic \ 
   --with-mail_ssl_module \ 
   --with-pcre \ 
   --with-pcre-jit \ 
   --with-stream=dynamic \ 
   --with-stream_ssl_module \ 
   --with-google_perftools_module \ 
   --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' \ 
   --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' \ 

Compilation or installation

  • Installation
make install
  • or just compilation
make -j 2
# -j 2 to build in parallel

Documentation / Reference

Discover More
Nginx - Build and add dynamic module (pagespeed, nginx-module-vts, )

This page will show you how to add module to an existent nginx installation If you want to add another module to an existing installation, you need to build it against the source as dynamic module (.so)...

Share this page:
Follow us:
Task Runner