As described on my tutorial regarding Nginx installation for reverse proxy, we don’t have any working nginx startup script. Because we installed our nginx from source (to get the latest stable version).

We need to add the script manually to our server

Adding a nginx startup script

nano /etc/init.d/nginx

#!/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=”/etc/nginx/sbin/nginx”
prog=$(basename $nginx)

NGINX_CONF_FILE=”/etc/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

Change the permission of the file so that can be executed

chmod +x /etc/init.d/nginx

Add nginx to the startup

chkconfig nginx on

Check if nginx already on the startup

# chkconfig –list | grep nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Last step is starting our nginx

# /etc/init.d/nginx start
the configuration file /etc/nginx/conf/nginx.conf syntax is ok
configuration file /etc/nginx/conf/nginx.conf test is successful
Starting nginx: [ OK ]

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MySpace
  • Technorati
  • email
  • Furl
  • LinkedIn
  • Live
  • Slashdot
  • StumbleUpon
One Response to “Nginx Startup Script on CentOS/RedHat”
  1. [...] Indonesia 2009 Sulit Bicara Indonesia Nginx Startup Script on CentOS/RedHat » Nov 12 [...]

  2.  
Leave a Reply