nginx短篇(3):基础命令

  • A+
所属分类:Nginx  运维技术

 

首先,感谢上次在微信公众号中点击"好看"的读者,这篇文章是为你们写的。

 

在前两篇文章中,我们介绍了安装nginx的方法以及配置文件的基础语法结构,那么在这篇文章中,我们来了解一下nginx的常用基础命令。

 

上一篇文章中我们已经提到了怎样启动nginx,如果你是通过编译安装的方式安装了nginx,那么我们可以通过nginx安装目录的sbin目录中的nginx二进制文件启动nginx,由于我将nginx安装到了/srv/nginx/目录中,所以,我使用如下命令启动nginx

没错,nginx命令就是我们最常用到的命令了,上例nginx命令没有使用任何参数,我们还可以配合一些参数来使用nginx命令,如果你使用的是yum源的方式安装的nginx,你可以在任何路径下输入如下命令启动nginx

通过yum源安装nginx后,可以在任何目录中直接使用nginx命令,这是因为通过yum源安装nginx后,nignx二进制文件默认会放在/usr/sbin/目录中,而这个目录正好属于默认环境变量PATH变量中的一部分,所以,如果你通过编译安装的方式安装了nginx,也可以将nginx的安装目录中的/sbin目录配置到PATH环境变量中,以便在任何路径中都可以直接使用nginx命令,以我的编译安装环境作为示例,步骤如下:

完成上述步骤,即可在编译安装nginx后,方便的执行nginx命令了。

 

聊完上述快捷配置后,我们再来聊聊nginx命令的一些常用选项。

 

不加任何选项直接执行nginx命令,就是用于启动nginx服务的,如果你想要看看nginx命令都有哪些可用的选项,则可以使用"-h选项"或者"-?选项",如下:

 

使用"-v"选项(小写v)可以查看nginx的版本信息,如下

 

使用"-V"选项(大写V)可以查看当前nginx的编译信息,在最开始的文章中我们就介绍过,编译安装nginx时,有很多"可选模块"可供我们使用,我们可以选择安装或不安装对应的可选模块,同时,我们还可以在编译安装时,设置一些编译选项,比如安装目录、各种文件的目录、编译器选项等等,这些信息都属于编译信息,所以,我们可以通过如下命令查看这些编译信息。

当然,即使你使用的是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文件进行语法检查,如果配置文件中存在语法错误,那么相应的错误信息会输出,如果配置语法没有问题,则会出现类似如下信息

无论语法是否正确,"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信号,那么这三种信号分别代表什么意思呢?我们一一道来

quit信号:与stop信号的作用类似,quit信号作用也是用于停止nginx服务,quit信号和stop信号的区别在于,nignx进程收到stop信号以后会立即停止服务,而收到quit信号后,不会再接收新的请求,但是会先处理完已经接受的链接请求,处理完这些请求之后再停止服务,这种停止方式被称之为"优雅的停止"。

reload信号:reload信号的作用就是在不停止服务的情况下重载配置文件,比如,nginx正在正常的提供服务,此时,管理员修改了nginx.conf文件中的配置指令,管理员希望新的配置立刻生效,但是又不希望重启nginx服务,此时就可以使用"nginx -s reload"命令重载配置文件,以便在不重启nginx的情况下载入新的配置,同时避免了因重启而造成的服务中断。

reopen信号:利用reopen信号可以使nignx进程重新打开日志文件,以便实现日志分割的效果,关于日志切割的话题会单独总结一片文章,reopen信号也会在届时进行演示,此处不用纠结。

 

此处将上述常用选项进行总结,以便回顾:

不加选项:启动nginx服务

-h-?选项:查看nginx命令帮助

-v选项:查看nginx版本信息

-V选项:查看nginx编译信息

-c选项:启动nginx时指定主配置文件

-t或-T选项:测试nginx.conf文件是否存在语法错误

-s选项:向正在运行的nginx主进程发送信号,信号的可用值有stop, quit, reopen, reload

 

好了,这篇文章就先写到这里,希望nginx短篇系列文章能够对你有所帮助~

  

weinxin
我的微信公众号
关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~
朱双印

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:10   其中:访客  8   博主  2

    • avatar 1

      大佬 我要把你的每一篇文章都认认真真读完

      • avatar 一飞要上天 1

        最怕看着你的文章,突然你的网站挂了,以后就没机会看了,语言通俗易懂,感人

        • avatar cisconetwork 0

          支持双印把知识系统清晰的分享出来,佩服!

          • avatar 鲸鱼帆 1

            作者写的很用心,点赞!!!但有个问题想请教下,上面介绍的在/etc/profile.d下配置环境变量后,就可以使用nginx作为命令;我这边是直接把/sbin下的nginx脚本拷贝到/usr/sbin也实现了将nginx直接作为命令的功能。想请教,这两种方式有什么区别吗?

            • avatar cybest 0

              新年快乐,写的文章很有帮助

              • avatar 等待 3

                感谢分享!!

                • avatar Mango 0

                  虽然公司现在用的openresty也大致相同,但是重拾Nginx真的给人一种快感,也想通过这些系统的再学习一下。期待下一篇。。。预祝新年快乐 :mrgreen:

                    • avatar 朱双印 Admin

                      @Mango 受到微信”好看”的鼓励,我写文章的速度加速了,一周内又多写了一篇,明天发,新年同乐,加油~