• Nginx的命令行控制


    在Linux中,需要使用命令行来控制Nginx服务器的启动与停止、重载配置文件、回滚日志文件、平滑升级等行为。默认情况下,Nginx被暗转挂在目录/usr/local/nginx/中,其二进制文件路径为/usr/local/nginc/sbin/nginx,配置文件路径为/usr/local/nginx/conf/nginx.conf。当然,configure执行时是可以指定把它们安装在不同目录里的,但为了简单起见,这里只说明默认安装情况。

    1、默认方式启动
    直接执行Nginx二进制程序,例如:
    /usr/local/nginx/sbin/nginx
    这时,会读取默认路径下的配置文件:/usr/local/nginx/conf/nginx.conf
    在没有显式指定nginx.conf配置文件路径时,将打开在configure命令执行时使用--conf-path=PATH指定的nginx.conf文件
    2、另行指定配置文件的启动方式
    使用-c参数指定配置文件,例如:
    /usr/local/nginx/sbin/nginx -c /tmp/nginx.conf
    这时,会读取-c参数后指定的nginx.conf配置文件来启动Nginx
    3、另行指定安装目录的启动方式
    /usr/local/nginx/sbin/nginx -p /usr/local/nginx
    4、另行指定全局配置项的启动方式
    可以通过-g参数临时指定一些全局配置项,以使新的配置项生效,例如:
    /usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid"
    上面这行命令意味着会把pid文件写到/var/nginx/test.pid
    -g参数的约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否则无法启动。
    5、测试配置信息是否有错误
    在不启动Nginx的情况下,使用-t参数仅测试配置文件是否有错误,例如:
    /usr/local/nginx/sbin/nginx -t
    执行结果中显示配置是否正确
    6、在测试配置阶段不输出信息
    测试配置选项时,使用-q参数可以不把error级别以下的信息输出到屏幕,例如:
    /usr/local/nginx/sbin/nginx -v
    7、显示版本信息
    使用-v参数显示Nginx的版本信息,例如:
    /usr/local/nginx/sbin/nginx -v
    8、显示编译阶段的参数
    使用-v参数除了可以显示Nginx的版本信息外,还可以显示配置编译阶段的信息,如GCC编译器的版本、操作系统的版本、执行configure时的参数等,例如:
    /usr/local/nginx/sbin/nginx -v
    9、快速地停止服务
    使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服务发送信号量,Nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的master进程发送TERM信号来快速地关闭Jginx服务,例如:
    /usr/local/nginx/sbin/nginx -s stop
    如果通过kill命令直接向nginx master进程发送TERM或者INT信号,效果是一样的。
    10、“优雅”地停止服务
    使用-s quit参数可以让Nginx服务正常地处理完当前所有请求再停止服务,例如:
    /usr/local/nginx/sbin/nginx -s quit
    直接发送QUIT信号给master进程来停止服务,效果与-s quit命令是一样的,例如:
    kill -s SIGQUIT <nginx master pid>
    “优雅”地停止某个进程,例如:
    kill -s SIGWINCH <nginx worker pid>
    11、使运行中的Nginx重读配置项并生效
    使用-s reload参数可以使运行中的Nginx服务重新加载nginx.conf文件,例如:
    /usr/local/nginx/sbin/nginx -s reload
    12、日志文件回滚
    使用-s reopen参数看重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件,这个功能使得日志文件不至于过大,例如:
    /usr/local/nginx/sbin/nginx -s reopen
    这与使用kill命令发送USR1信号效果相同
    kill -s SIGUSR1 <nginx master pid>
    13、平滑升级Nginx
    当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,Nginc支持不重启服务来完成新版本的平滑升级。
    升级包括以下步骤:
    a、通知正在运行的旧版本Nginx准备升级,通过向master进程发送USR2信号可达到目的,例如:
    kill -s SIGUSR2 <nginx master pid>
    这时,运行中的Nginx会将pid文件重命名,如将/usr/local/nginx/logs/nginx.pid重命名为/usr/local/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。
    b、启动新版本的Nginx,这时通过ps命令可以发现旧版本的Nginx在同时运行。
    c、通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的Nginx。随后将只有新版本的Nginx在同时运行。
    14、显示命令行帮助
    使用-h或者-?参数会显示支持的所有命令行参数

  • 相关阅读:
    Java 给Word指定字符串添加批注
    Java 打印Word文档
    Java 在PDF中添加页面跳转按钮
    C# 添加、修改、删除Excel图表数据标签
    C# 添加、读取、删除Excel文档属性
    Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行
    【Luogu5348】密码解锁(莫比乌斯反演,数论)
    AtCoder Grand Contest 015
    AtCoder Grand Contest 014
    Codeforces Round #556 (Div. 1)
  • 原文地址:https://www.cnblogs.com/xsl1995/p/10410954.html
Copyright © 2020-2023  润新知