Loading... 首先,感谢上次在微信公众号中点击”好看”的读者,这篇文章是为你们写的。 在前两篇文章中,我们介绍了安装nginx的方法以及配置文件的基础语法结构,那么在这篇文章中,我们来了解一下nginx的常用基础命令。 上一篇文章中我们已经提到了怎样启动nginx,如果你是通过编译安装的方式安装了nginx,那么我们可以通过nginx安装目录的sbin目录中的nginx二进制文件启动nginx,由于我将nginx安装到了/srv/nginx/目录中,所以,我使用如下命令启动nginx <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-c0"># /srv/nginx/sbin/nginx</span></div> </div> </div> </div> 没错,nginx命令就是我们最常用到的命令了,上例nginx命令没有使用任何参数,我们还可以配合一些参数来使用nginx命令,如果你使用的是yum源的方式安装的nginx,你可以在任何路径下输入如下命令启动nginx <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-c0"># nginx</span></div> </div> </div> </div> 通过yum源安装nginx后,可以在任何目录中直接使用nginx命令,这是因为通过yum源安装nginx后,nignx二进制文件默认会放在/usr/sbin/目录中,而这个目录正好属于默认环境变量PATH变量中的一部分,所以,如果你通过编译安装的方式安装了nginx,也可以将nginx的安装目录中的/sbin目录配置到PATH环境变量中,以便在任何路径中都可以直接使用nginx命令,以我的编译安装环境作为示例,步骤如下: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">1、创建/etc/profile.</span><span class="enlighter-m3">d</span><span class="enlighter-text">/nginx.</span><span class="enlighter-m3">sh</span><span class="enlighter-text">文件,以便写入环境变量配置。</span></div> </div> <div class=""> <div></div> </div> <div class=""> <div><span class="enlighter-n1">2</span><span class="enlighter-text">、在/etc/profile.</span><span class="enlighter-m3">d</span><span class="enlighter-text">/nginx.</span><span class="enlighter-m3">sh</span><span class="enlighter-text">文件中写入如下内容:</span></div> </div> <div class=""> <div><span class="enlighter-text">nginx_home=/srv/nginx</span></div> </div> <div class=""> <div><span class="enlighter-text">PATH=$nginx_home/sbin:$PATH</span></div> </div> <div class=""> <div><span class="enlighter-text">export PATH</span></div> </div> <div class=""> <div></div> </div> <div class=""> <div><span class="enlighter-n1">3</span><span class="enlighter-text">、使用如下命令重载刚才的配置</span></div> </div> <div class=""> <div><span class="enlighter-c0"># source /etc/profile</span></div> </div> </div> </div> 完成上述步骤,即可在编译安装nginx后,方便的执行nginx命令了。 聊完上述快捷配置后,我们再来聊聊nginx命令的一些常用选项。 不加任何选项直接执行nginx命令,就是用于启动nginx服务的,如果你想要看看nginx命令都有哪些可用的选项,则可以使用”-h选项”或者”-?选项”,如下: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-c0"># nginx -h</span></div> </div> <div class=""> <div><span class="enlighter-c0"># nginx -?</span></div> </div> </div> </div> 使用”-v”选项(小写v)可以查看nginx的版本信息,如下 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-c0"># nginx -v</span></div> </div> <div class=""> <div><span class="enlighter-text">nginx version: nginx/</span><span class="enlighter-n0">1.14</span><span class="enlighter-text">.</span><span class="enlighter-m3">2</span></div> </div> </div> </div> 使用”-V”选项(大写V)可以查看当前nginx的编译信息,在最开始的文章中我们就介绍过,编译安装nginx时,有很多”可选模块”可供我们使用,我们可以选择安装或不安装对应的可选模块,同时,我们还可以在编译安装时,设置一些编译选项,比如安装目录、各种文件的目录、编译器选项等等,这些信息都属于编译信息,所以,我们可以通过如下命令查看这些编译信息。 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-c0"># nginx -V</span></div> </div> </div> </div> 当然,即使你使用的是yum源的方式安装的nginx,同样可以上述命令查看这些编译信息,只不过yum源中的nginx二进制文件是别人提前为我们编译好的,那些编译信息也是别人为我们编译nginx时所使用的编译设置。 使用”-c”选项可以指定使用哪个配置文件来启动nginx服务,默认情况下,会使用nginx安装目录中的conf目录中的nginx.conf文件作为主配置文件,你也可以在命令行中使用”nginx -c /xxxpath/nginx.conf”来指定具体路径下的配置文件启动nginx服务。 使用”-t”选项或者”-T”选项可以测试nginx.conf配置文件中是否存在语法错误,前一篇文章中我们提到过,nginx.conf中的配置指令需要以分号结尾,如果没有以分号结尾,会在启动nignx时报语法错误,其实,在启动nginx服务之前,我们就可以使用”nginx -t”命令对nginx.conf文件进行语法检查,如果配置文件中存在语法错误,那么相应的错误信息会输出,如果配置语法没有问题,则会出现类似如下信息 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-c0"># nginx -t</span></div> </div> <div class=""> <div><span class="enlighter-text">nginx: the configuration file /srv/nginx/conf/nginx.</span><span class="enlighter-m3">conf</span><span class="enlighter-text"> syntax is ok</span></div> </div> <div class=""> <div><span class="enlighter-text">nginx: configuration file /srv/nginx/conf/nginx.</span><span class="enlighter-m3">conf</span><span class="enlighter-text"> test is successful</span></div> </div> </div> </div> 无论语法是否正确,”nginx -t”命令都不会启动nginx服务,”nginx -t”命令只用于检查是否存在语法错误,此处所谓的语法错误包括”非法指令”、”重复指令”、”指令没有以分号结尾”等。 当存在语法错误时,”nginx -t”命令和”nginx -T”命令输出的错误信息是完全相同的,只有在语法正确时,这两个命令才存在区别,”nginx -T”命令会在语法正确时,将配置文件中的内容输出到屏幕中,我们可以将这些内容重定向到一个文件中,以便将当前的正确配置进行备份。 还有一个非常常用的选项,就是”-s”选项,”-s”选项的作用就是向正在运行的nginx进程发送信号,这样解释可能不容易理解,我们换个角度来说吧,比如,当nginx服务已经启动,我们想要停止nginx服务,则可以使用”nginx -s stop”命令停止nginx服务,”nginx -s stop”命令表示向nginx进程发送stop信号,这样解释你应该明白了吧,使用”-s”选项除了能够发送stop信号,还能发送quit信号、reopen信号以及reload信号,那么这三种信号分别代表什么意思呢?我们一一道来 <strong>quit信号:</strong>与stop信号的作用类似,quit信号作用也是用于停止nginx服务,quit信号和stop信号的区别在于,nignx进程收到stop信号以后会立即停止服务,而收到quit信号后,不会再接收新的请求,但是会先处理完已经接受的链接请求,处理完这些请求之后再停止服务,这种停止方式被称之为”优雅的停止”。 <strong>reload信号:</strong>reload信号的作用就是在不停止服务的情况下重载配置文件,比如,nginx正在正常的提供服务,此时,管理员修改了nginx.conf文件中的配置指令,管理员希望新的配置立刻生效,但是又不希望重启nginx服务,此时就可以使用”nginx -s reload”命令重载配置文件,以便在不重启nginx的情况下载入新的配置,同时避免了因重启而造成的服务中断。 <strong>reopen信号:</strong>利用reopen信号可以使nignx进程重新打开日志文件,以便实现日志分割的效果,关于日志切割的话题会单独总结一片文章,reopen信号也会在届时进行演示,此处不用纠结。 此处将上述常用选项进行总结,以便回顾: <strong>不加选项:</strong>启动nginx服务 <strong>-h或–?选项:</strong>查看nginx命令帮助 <strong>-v选项:</strong>查看nginx版本信息 <strong>-V选项:</strong>查看nginx编译信息 <strong>-c选项:</strong>启动nginx时指定主配置文件 <strong>-t或-T选项:</strong>测试nginx.conf文件是否存在语法错误 <strong>-s选项:</strong>向正在运行的nginx主进程发送信号,信号的可用值有stop, quit, reopen, reload 好了,这篇文章就先写到这里,希望nginx短篇系列文章能够对你有所帮助~ 转载自朱双印日志https://www.zsythink.net/archives/3140 Last modification:May 29, 2024 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏