How to compile and install NGINX From source on CentOS 7


Nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.

In this tutorial we will discuss hoe to compile and install nginx in rpm based systems from source.

1. Compiling Nginx from source.

Installing dependencies using YUM:

# yum install -y zlib zlib-devel pcre prce-devel openssl openssl-devel

Change the directory according to your wish for downloading source file:

**Here we use /usr/local/src

# cd /usr/local/src/

Download Nginx tar file:

# wget

If you want to download latest version go to I here used version 1.14.2

Extract tar file:

# tar xfvz nginx-1.14.2.tar.gz

Change directory:

# cd nginx-1.14.2

Add a user nginx:

 # useradd nginx


  #  ./configure  --help   ( You will get help regarding configure such as modules to be installed ) 

–prefix= for specifing the directory which we want to install nginx. Here I used /opt/nginx/

Here I used following configuration with some necessary modules.

# ./configure --user=nginx --group=nginx --prefix=/opt/nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-file-aio --with-http_realip_module --without-http_scgi_module --without-http_uwsgi_module --with-http_realip_module

Install the configured:

# make
# make install

If you are using apache on the same server you need to change the port number in nginx main configuration file

 #  vi /opt/nginx/conf/nginx.conf
                  server {
                                listen       8080;
                                server_name  localhost;

save and quit.

If you enabled firewall in your server you want to add he port in firewall.

Add the service file:

# vi /usr/lib/systemd/system/nginx.service

	Description=The NGINX HTTP and reverse proxy server

	ExecStartPre=/opt/nginx/sbin/nginx -t
	ExecReload=/opt/nginx/sbin/nginx -s reload
	ExecStop=/bin/kill -s QUIT $MAINPID


save and quit.

Start the service:

 # systemctl start nginx
 # systemctl enable nginx

You can check version by executing following command.

# /opt/nginx/sbin/nginx  -v

Now open your browser and ensure nginx is working http://your_ip:port_number