我们在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可以通过Windows服务管理工具(如`services.msc`)或者命令行进行控制: - 启动服务:`winsw-1.9-bin.exe start nginx` - 停止服务:`winsw-1.9-bin.exe stop nginx` - 重启服务:`winsw-1.9-...
Nginx命令行选项包括查看版本 (`-v` 或 `-V`)、测试配置 (`-t` 或 `-T`)、启动、停止、重启 (`start`, `stop`, `reload`) 和查看帮助 (`-h`)。此外,可以通过配置文件中的location块来管理特定URL的行为,如开启80...
- `-s`参数用于控制Nginx服务,如`nginx -s stop`立即停止服务,`nginx -s quit`优雅关闭服务,`nginx -s reload`重新加载配置文件。 - `nginx -t`用于测试配置文件的语法是否正确。 6. **安全与优化**: - 设置...
1. **nginx.exe**: 这是Nginx服务器的主进程文件,负责启动、管理和控制Nginx服务器。双击这个可执行文件,可以启动Nginx服务。 2. **conf** 目录:包含了Nginx的配置文件。其中最重要的文件是`nginx.conf`,它是...
3. **编译Nginx**:打开命令行,导航到Nginx源代码目录。使用以下命令来编译Nginx并添加RTMP模块: ``` configure --prefix=<安装路径> --add-module=模块路径> ``` 其中`<安装路径>`是你希望Nginx安装的位置,`...
通常,`nginx.bat`会包含一些命令行参数,调用`nginx.exe`或者`RunHiddenConsole.exe`来启动或管理Nginx服务。例如,它可能会包含类似`RunHiddenConsole.exe nginx.exe -s start`这样的命令来启动Nginx服务。 配置...
* 控制 Nginx 连接处理方式 * 设置哈希调试日志记录 * 配置文件度量单位 * 命令行参数 * 在 Windows 平台上使用 Nginx Nginx 核心功能 * ngx_http_core_module * ngx_http_access_module * ngx_...
为了管理和控制Nginx,了解`nginx -s reload`(重新加载配置)、`nginx -s stop`(停止服务)和`nginx -t`(测试配置文件语法)等命令至关重要。 4. **配置文件**:Nginx的核心配置文件通常是`nginx.conf`,包含...
- 这可能是一个辅助程序,用于在后台静默运行Nginx服务,不显示命令行窗口。在`start.bat`中,它可能会被用来启动Nginx服务。 6. **其他目录的作用**: - `www`目录通常存放静态网页资源,如HTML、CSS和...
Nginx的命令行工具`nginx`用于启动、停止、重启或查看服务状态。此外,`nginx -t`可检查配置文件的语法正确性。 总的来说,Nginx 1.9.0作为一个强大的Web服务器,提供了多种高级特性,为企业级应用提供了可靠的基础...
2. **启动与停止管理**:在命令行中,我们通常使用`nginx`命令来启动或停止Nginx服务。但通过GUI,用户可以更方便地进行这些操作,只需点击按钮即可实现服务的启动、停止、重启或者重载配置,避免了因命令行操作不当...
在Windows环境下,通常我们不直接通过命令行启动Nginx,而是将其安装为服务,这样可以方便地在系统启动时自动运行,并且可以通过服务管理工具进行控制。"nginx-service.exe" 文件很可能就是一个Windows服务包装器,...
7. 验证服务状态:最后,通过服务管理器或者命令行工具检查Nginx服务是否已经成功启动,并设置为自动启动。 完成以上步骤后,Nginx-1.12.2就在Windows Server 2008 R2上成功配置为系统服务了。你可以通过winsw提供...
3. 启动`Nginx`服务,可以使用命令行工具`nginx.exe -c path/to/nginx.conf`启动。 4. 使用`RTMP`编码器(如OBS Studio)推流到`Nginx`服务器,然后在客户端通过`RTMP`或`HLS`协议拉取流。 此外,为了监控和管理`...
**Nginx Windows服务版详解** ...通过winsw,你可以轻松地将Nginx集成到Windows的系统服务管理中,实现自动化运维和远程控制。正确配置和管理Nginx服务,对于提升Windows服务器的性能和可靠性至关重要。
`nginx服务使用及设置自启动方法.doc`文件很可能是详细的操作指南,它可能包含如何配置`nginx-service.exe`以实现开机自启动的步骤,以及如何管理和控制Nginx服务的说明。建议仔细阅读这份文档,以确保正确设置自...
总结,Nginx 1.9.0 在 Windows 64 位系统上的配置涉及了安装、配置文件编写、批处理脚本管理和 Nginx 服务的启动与控制等多个方面。通过合理的配置,Nginx 可以有效提高网站性能,提供稳定的服务。
可以在命令行运行tasklist命令来查看nginx进程: C:\nginx-1.3.13>tasklist /fi "imagename eq nginx.exe" Image Name PID Session Name Session# Mem Usage =============== ======== ============== ========== ...