编译安装的Nginx在安装后默认的启动、停止、重启方式很麻烦,最好的方式是把它加入到系统服务中,这样我们用简单的service nginx (start|stop|restart)就可以很方便的控制nginx的启动或停止。如何实现呢?
  1. 编写一个名为nginx的脚本:vim nginx
  2. #!/bin/bash
    # nginx Startup script for the Nginx HTTP Server
    # it is v.0.0.2 version.
    # chkconfig: - 85 15
    # description: Nginx is a high-performance web and proxy server.
    #              It has a lot of features, but it's not for everyone.
    # processname: nginx
    # pidfile: /usr/local/nginx/logs/nginx.pid
    # config: /usr/local/nginx/conf/nginx.conf
    #nginx程序路径
    nginxd=/usr/local/nginx/sbin/nginx
    
    #nginx配置文件路径
    nginx_config=/usr/local/nginx/conf/nginx.conf
    
    #nginx pid文件的路径,可以在nginx的配置文件中找到
    nginx_pid=/usr/local/nginx/logs/nginx.pid
    RETVAL=0
    prog="nginx"
    # Source function library.
    . /etc/rc.d/init.d/functions
    # Source networking configuration.
    . /etc/sysconfig/network
    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 0
    [ -x $nginxd ] || exit 0
    # Start nginx daemons functions.
    start() {
    if [ -e $nginx_pid ];then
       echo "nginx already running...."
       exit 1
    fi
       echo -n $"Starting $prog: "
       daemon $nginxd -c ${nginx_config}
       RETVAL=$?
       echo
       [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
       return $RETVAL
    }
    # Stop nginx daemons functions.
    stop() {
            echo -n $"Stopping $prog: "
            killproc $nginxd
            RETVAL=$?
            echo
            [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
    }
    # reload nginx service functions.
    reload() {
        echo -n $"Reloading $prog: "
        #kill -HUP `cat ${nginx_pid}`
        killproc $nginxd -HUP
        RETVAL=$?
        echo
    }
    # See how we were called.
    case "$1" in
    start)
            start
            ;;
    stop)
            stop
            ;;
    reload)
            reload
            ;;
    restart)
            stop
            start
            ;;
    status)
            status $prog
            RETVAL=$?
            ;;
    *)
            echo $"Usage: $prog {start|stop|restart|reload|status|help}"
            exit 1
    esac
    exit $RETVAL
  3.   mv ./nginx /etc/init.d/nginx  #把它放在/etc/init.d/下
  4. chmod +x /etc/init.d/nginx      #赋予执行权限
  5. chmod nginx on                  #设置开机启动
  6. [root@VM_209_111_centos ~]# service nginx start 
    Starting nginx:                                            [  OK  ]
    [root@VM_209_111_centos ~]# service nginx stop 
    Stopping nginx:                                            [  OK  ]
    [root@VM_209_111_centos ~]# service nginx start
    Starting nginx:                                            [  OK  ]
    [root@VM_209_111_centos ~]# service nginx restart
    Stopping nginx:                                            [  OK  ]
    Starting nginx:                                            [  OK  ]

    这样就可以了。

    其中要注意这几个路径:

    /usr/local/nginx/conf/nginx.conf

    /usr/local/nginx/logs/nginx.pid

    /usr/local/nginx/sbin/nginx

    要保证这几个路径与您安装的nginx文件的路径一致。