Thursday, 18 July 2013

Centos 6/RHEL install Nginx Web Server

Nginx, an acronym for 'enginex' is an HTTP and reverse proxy server, as well as a mail proxy server. It is available from the Nginx repo as well as the Epel repo, so here we will use the Nginx repo. The rpm repo pack contains the GPG key needed to authenticate the signed rpms. This guide covers the basic installation on Centos 6 with minimal edits to get up and running, it does not cover more advanced configuration.
I give it priority 40 and disable epel when installing it.

First download the repo pack using wget

$ sudo yum -y install wget

Centos 6 users

$ sudo wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

RHEL users

$ sudo wget http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm

$ sudo rpm -Uvh nginx-release-rhel-6-0.el6.ngx.noarch.rpm
 

Once its installed we configure it

$ sudo chkconfig nginx on

Edit the config files

$ sudo vi /etc/nginx/nginx.conf

Find your cpu count

$ lscpu | grep CPU

worker_processes 2;   (set to number of cpus)

gzip on;              (uncomment)

$ sudo vi /etc/nginx/conf.d/default.conf

listen        80; 

server_name   localhost

Now start the server

$ sudo service nginx start

Starting nginx:                                      [  OK ] 


Other commands

$ sudo service nginx stop

$ sudo service nginx restart

$ sudo service nginx status

$ sudo service nginx reload

Check it is started and running

$ sudo netstat -tulpn | grep :80
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 192.168.0.100:80            0.0.0.0:*                   LISTEN      -                  
anton.Centos.~>ps aux | grep nginx
anton     2842  0.0  0.1  45604 10232 ?        Ss   18:35   0:01
root      3225  0.0  0.0   7416   828 ?        Ss   19:01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     3226  0.0  0.0   7596  1204 ?        S    19:01   0:00 nginx: worker process                  
nginx     3227  0.0  0.0   7596  1228 ?        S    19:01   0:00 nginx: worker process                  
anton     3234  0.0  0.0   4356   756 pts/2    S+   19:01   0:00 


Now browse to http://localhost as in the image above.

Firewall

The above was done without setting any firewall rules but others may have to set rules in iptables, if so it will probably be something similar to below.

$ sudo vi /etc/sysconfig/iptables

Enter into the file

-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

$ sudo iptables restart 

More repos