zoukankan      html  css  js  c++  java
  • nginx设置开机自启动

    每次启动nginx服务都需要到安装目录下的/sbin下面,感觉挺麻烦的。

    下面介绍一下如何在Linux(CentOS)系统上,设置nginx开机自启动。

    1 用脚本管理nginx服务

    第一步:在/etc/init.d/目录下创建nginx文件,命令如下:

    # touch /etc/init.d/nginx

    第二步:在创建的nginx文件中加入下面的内容

    首先执行命令:

    # vim /etc/init.d/nginx

    然后加下面的内容复制到nginx配置文件中

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse 
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/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/sbin/nginx"
    prog=$(basename $nginx)
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    lockfile=/var/lock/subsys/nginx
    make_dirs() {
       # make required directories
       user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=([^ ]*).*/1/g' -`
       if [ -z "`grep $user /etc/passwd`" ]; then
           useradd -M -s /bin/nologin $user
       fi
       options=`$nginx -V 2>&1 | grep 'configure arguments:'`
       for opt in $options; do
           if [ `echo $opt | grep '.*-temp-path'` ]; then
               value=`echo $opt | cut -d "=" -f 2`
               if [ ! -d "$value" ]; then
                   # echo "creating" $value
                   mkdir -p $value && chown -R $user $value
               fi
           fi
       done
    }
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        make_dirs
        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
        sleep 1
        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

    上面的脚本文件并不是自己写的,是nginx官方提供的。

    地址:http://wiki.nginx.org/RedHatNginxInitScript

    注意:如果是自定义安装的nginx,修改根据实际情况修改安装路和配置文件。

    nginx="/usr/sbin/nginx" 修改成你的nginx执行程序的路径。比如我的是nginx="/usr/local/nginx/sbin/nginx"
    NGINX_CONF_FILE="/etc/nginx/nginx.conf" 修改成你的配置文件的路径
    例如:NGINX_CONF_FILE="/usr/local/nginx/nginx.conf

    修改完成后保存脚本文件,wq 保存并退出

    第三步:设置nginx文件的权限

    # chmod a+x /etc/init.d/nginx

    解释:a+x==>all user can execute 所有用户可执行)的意思

    第四步:管理脚本

    到这里,我们就可以使用nginx脚本对服务进行管理了

    # /etc/init.d/nginx start      启动服务
    # /etc/init.d/nginx stop       停止服务  
    # /etc/init.d/nginx restart 重启服务 # /etc/init.d/nginx status 查看服务的状态
    # /etc/init.d/nginx reload 刷新配置文件

    2 使用chkconfig管理

    上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。

    这个时候我们可以使用chkconfig来进行管理。

    第一步:将nginx服务加入chkconfig管理列表

    # chkconfig --add /etc/init.d/nginx

    第二步:使用service管理服务

    # service nginx start    启动服务
    # service nginx stop     停止服务
    # service nginx restart 重启服务
    # service nginx status 查询服务的状态
    # service nginx relaod 刷新配置文

    第三步:设置终端模式开机启动

    # chkconfig nginx on
  • 相关阅读:
    小清新数论题泛做
    近日模考理数压轴题简记
    带边数的无向连通图计数
    ZJOI2019 简记
    SDOI2019 R2D2 题解
    [补档题解]后缀树节点数
    [BJ United Round 3] 押韵
    高维 DFT 算法(FWT 快速沃尔什变换)
    SDOI2019 R2D1 题解
    LOJ#6713. 「EC Final 2019」狄利克雷 k 次根 加强版
  • 原文地址:https://www.cnblogs.com/jepson6669/p/9125186.html
Copyright © 2011-2022 走看看