Thursday 10 November 2011

NGINX installation on Redhat & Centos


NGINX INSTALLATION
      Downlaod the nginx-.-.-.tar.gz file and copy in to /usr/local/src(optional) directory. Install the nginx using source code.
Step 1-: cd /usr/local/src
Step 2-: tar –zxvf nginx-.tar.gz
Step 3-: ./configure
Step 4-: make ; make install


       
       For installing nginx we need gcc, pcre and zlib packages.


       After installing nginx we cannot start or check the status. We need to create the script manually under the /etc/init.d/ directory.


Step 5-: vi /etc/init.d/nginx (copy the below script in to the newly created file)
           ---------------------------------------------------------------------------------------------------------      

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
[ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
        ------------------------------------------------------------------------------------------------------------------------      
                   Save the file and exit. Change the permissions of the file.
Step 6-: chmod +x /etc/init.d/nginx
Step 7-: /etc/init.d/nginx configtest
Step 8-: /etc/init.d/nginx status
Step 9-: /etc/init.d/nginx start | stop | restart | reload

                     Default configuration file for nginx will be at /usr/local/nginx/conf/nginx.conf

No comments:

Post a Comment