`

nginx的命令行控制

 
阅读更多

   我们在Linux中,需要使用命令行来控制nginx服务器的启动和关闭、重载配置文件、回滚日志文件、平滑升级等行为。我们假设nginx的安装目录为/usr/local/nginx/ 其二进制文件路径为/usr/local/nginx/sbin/nginx 配置文件路径为:/usr/local/nginx/conf/nginx.conf。

  •    1.默认nginx的启动方式

直接执行nginx的二进制程序

/usr/local/nginx/sbin/nginx

 这时会读取默认路径下的配置文件:/usr/local/nginx/conf/nginx.conf。(其实,如果没有显示指定nginx的配置文件路径,将会打开configure命令执行时使用--config-path=PATH指定的nginx.conf文件)

  • 2.另行指定配置文件的配置方式

使用-c参数指定配置文件。

/usr/local/nginx/sbin/nginx  -c  /tmp/nginx.conf

 此时将会读取-c参数后面的nginx.conf配置文件来启动nginx

  • 3.另行指定安装目录的启动方式

使用-p参数来指定nginx的安装目录

/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参数是存在约束条件的:

 

  •       -g参数指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否则无法启动nginx。如上例中,如果nginx默认的nginx.conf中存在类似:pid /tmp/nginx.conf的配置 则nginx是无法启动的
  •       以-g方式启动的nginx服务执行其他命令行时,需要把-g参数也带上,否则可能出现配置项不匹配的情形。例如,如果要停止nginx服务 则命令行代码如下:
/usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid" -s stop
#因为如果不带上-g参数 则pid文件无法找到 也是无法启动nginx的
  •  5.测试配置信息是否有错误

在不启动nginx的情况下,使用-t参数仅测试配置文件是否有错。

/usr/local/nginx/sbin/nginx -t
#执行结果将显示配置是否正确
  •  6.在测试阶段不输出信息

测试配置选项时,使用-q参数可以不把error级别一下的信息输出到屏幕。

/usr/local/nginx/sbin/nginx -t -q
  •  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信号来快速地关闭nginx服务。

/usr/local/nginx/sbin/nginx -s stop

 实际上通过kill命令直接向nginx master进程发送TERM或INT信号,效果是一样的。

ps aux| grep nginx#找出nginx master的进程ID
#接下来直接通过kill命令来发送信号
kill -s SIGTERM <nginx master进程ID>
或
kill -s SIGINT <nginx master 进程ID>
#上面指令执行效果与/usr/local/nginx/sbin/nginx -s stop 是一样的
  •  10.“优雅”地停止服务

如果我们希望nginx能够处理完当前所有请求之后再停止服务,那么可以使用-s quit参数来停止服务。

/usr/local/nginx/sbin/nginx -s quit
  •       -s stop属于快速停止服务,相对比较粗暴一点儿,worker和master进程在接收到信号后就会立即跳出循环,退出进程。
  •       -s quit的做法就比较优雅一点儿,首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。

当然这种优雅的方式,也可以通过直接发送QUIT信号给master进程来停止服务,效果与-s quit是一样的。

kill -s SIGQUIT <nginx master pid>

 如果希望“优雅”地停止某个worker进程,那么可以通过向进程发送WINCH信号来停止服务。

kill -s SIGWINCH <nginx worker pid>
  •  11.使运行中的nginx重读配置项并生效

使用-s reload参数可以使运行中的nginx服务重新加载nginx.conf文件。

/usr/local/nginx/sbin/nginx -s reload

 实际上,nginx会先检查新的配置项是否有错,如果全部正确就以“优雅”的方式关闭,再重新启动nginx来实现这个目的。类似的,-s是发送信号,同样可以使用kill命令发送HUP信号来达到相同的效果。

kill -s SIGHUP <nginx master pid>
  •  12.日志文件回滚

使用-s reopen 参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时,就会生成新的日志文件。这个功能使得日志文件不至于过大。

/usr/local/nginx/sbin/nginx -s reopen

 使用kill命令发送USR1信号效果也是一样的。

kill -s SIGUSR1 <nginx master pid>
  •  13.平滑升级nginx

当nginx服务升级到新版本时,必须要将旧的二进制文件nginx替换掉,通常情况下,这是需要重启服务的,但nginx支持不重启服务来完成新版本的平滑升级。

升级时包括以下步骤:

  •      (1)通知正在运行的旧版本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才有可能启动成功。
  •      (2)启动新版本的nginx,可以使用以上介绍过的任意一种启动方法。这时通过ps命令可以发现新旧版本的nginx同时运行。
  •       (3)通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的nginx。随后将只有新版本nginx服务运行,此时平滑升级完毕。
  • 14.显示命令行帮助

使用-h或者-?参数会显示支持的所有命令行参数。

 

分享到:
评论

相关推荐

    nginx添加权限控制

    本文将深入探讨如何在Nginx中添加权限控制,以增强网站的安全性,确保敏感资源不被未授权访问。 ### Nginx权限控制的重要性 在互联网世界中,数据安全至关重要。无论是个人网站还是企业级应用,保护用户数据和限制...

    nginx将进程注册为Windows服务

    注册为服务后,Nginx可以通过Windows服务管理工具(如`services.msc`)或者命令行进行控制: - 启动服务:`winsw-1.9-bin.exe start nginx` - 停止服务:`winsw-1.9-bin.exe stop nginx` - 重启服务:`winsw-1.9-...

    nginx性能测试与优化1

    Nginx命令行选项包括查看版本 (`-v` 或 `-V`)、测试配置 (`-t` 或 `-T`)、启动、停止、重启 (`start`, `stop`, `reload`) 和查看帮助 (`-h`)。此外,可以通过配置文件中的location块来管理特定URL的行为,如开启80...

    nginx-1.1.2 绿色免安装版 windows

    1. **nginx.exe**: 这是Nginx服务器的主进程文件,负责启动、管理和控制Nginx服务器。双击这个可执行文件,可以启动Nginx服务。 2. **conf** 目录:包含了Nginx的配置文件。其中最重要的文件是`nginx.conf`,它是...

    windows版本编译配置好nginx

    3. **编译Nginx**:打开命令行,导航到Nginx源代码目录。使用以下命令来编译Nginx并添加RTMP模块: ``` configure --prefix=&lt;安装路径&gt; --add-module=模块路径&gt; ``` 其中`&lt;安装路径&gt;`是你希望Nginx安装的位置,`...

    nginx官方文档中文版

    * 控制 Nginx 连接处理方式 * 设置哈希调试日志记录 * 配置文件度量单位 * 命令行参数 * 在 Windows 平台上使用 Nginx Nginx 核心功能 * ngx_http_core_module * ngx_http_access_module * ngx_...

    windows下配置nginx启动需要的exe文件

    通常,`nginx.bat`会包含一些命令行参数,调用`nginx.exe`或者`RunHiddenConsole.exe`来启动或管理Nginx服务。例如,它可能会包含类似`RunHiddenConsole.exe nginx.exe -s start`这样的命令来启动Nginx服务。 配置...

    nginx压缩安装包zip

    为了管理和控制Nginx,了解`nginx -s reload`(重新加载配置)、`nginx -s stop`(停止服务)和`nginx -t`(测试配置文件语法)等命令至关重要。 4. **配置文件**:Nginx的核心配置文件通常是`nginx.conf`,包含...

    海康威视摄像头web端显示方案(Nginx环境测试)

    - 这可能是一个辅助程序,用于在后台静默运行Nginx服务,不显示命令行窗口。在`start.bat`中,它可能会被用来启动Nginx服务。 6. **其他目录的作用**: - `www`目录通常存放静态网页资源,如HTML、CSS和...

    nginx-1.9.0.tar

    Nginx的命令行工具`nginx`用于启动、停止、重启或查看服务状态。此外,`nginx -t`可检查配置文件的语法正确性。 总的来说,Nginx 1.9.0作为一个强大的Web服务器,提供了多种高级特性,为企业级应用提供了可靠的基础...

    Nginx-GUI-For-Windows-x64-v1.6.zip

    2. **启动与停止管理**:在命令行中,我们通常使用`nginx`命令来启动或停止Nginx服务。但通过GUI,用户可以更方便地进行这些操作,只需点击按钮即可实现服务的启动、停止、重启或者重载配置,避免了因命令行操作不当...

    nginx-service.zip

    在Windows环境下,通常我们不直接通过命令行启动Nginx,而是将其安装为服务,这样可以方便地在系统启动时自动运行,并且可以通过服务管理工具进行控制。"nginx-service.exe" 文件很可能就是一个Windows服务包装器,...

    windows系统下将nginx作为系统服务启动

    7. 验证服务状态:最后,通过服务管理器或者命令行工具检查Nginx服务是否已经成功启动,并设置为自动启动。 完成以上步骤后,Nginx-1.12.2就在Windows Server 2008 R2上成功配置为系统服务了。你可以通过winsw提供...

    nginx(rtmp,hls)视频流分发

    3. 启动`Nginx`服务,可以使用命令行工具`nginx.exe -c path/to/nginx.conf`启动。 4. 使用`RTMP`编码器(如OBS Studio)推流到`Nginx`服务器,然后在客户端通过`RTMP`或`HLS`协议拉取流。 此外,为了监控和管理`...

    nginx windows 服务版

    **Nginx Windows服务版详解** ...通过winsw,你可以轻松地将Nginx集成到Windows的系统服务管理中,实现自动化运维和远程控制。正确配置和管理Nginx服务,对于提升Windows服务器的性能和可靠性至关重要。

    nginx服务器及使用

    `nginx服务使用及设置自启动方法.doc`文件很可能是详细的操作指南,它可能包含如何配置`nginx-service.exe`以实现开机自启动的步骤,以及如何管理和控制Nginx服务的说明。建议仔细阅读这份文档,以确保正确设置自...

    nginx-1.9.0+配置.zip

    总结,Nginx 1.9.0 在 Windows 64 位系统上的配置涉及了安装、配置文件编写、批处理脚本管理和 Nginx 服务的启动与控制等多个方面。通过合理的配置,Nginx 可以有效提高网站性能,提供稳定的服务。

    nginx-1.3.13

    可以在命令行运行tasklist命令来查看nginx进程: C:\nginx-1.3.13&gt;tasklist /fi "imagename eq nginx.exe" Image Name PID Session Name Session# Mem Usage =============== ======== ============== ========== ...

    简单编写html文件加载nginx发布的视频,实现在线播放nginx发布的视频

    在命令行中运行`sudo service nginx restart`(根据你的操作系统可能略有不同)。 接下来,我们需要创建一个HTML文件,用于播放这些视频。在这个例子中,文件名为`study.html`。HTML5提供了`&lt;video&gt;`元素,可以用来...

Global site tag (gtag.js) - Google Analytics