下载和安装Nginx之控制Nginx服务

眼下,你应该成功安装并创建了Nginx,默认的位置为/usr/local/nginx,所以咱们未来的例子都将基于这个目录。前端

守护进程和服务nginx

下一步,显然是执行Nginx。计算机应用程序有两个类型——有的须要用户在前端输入命令后当即运行;有的则否则,运行于后台。Nginx属于后者,即常常说起的做为守护进程运行的那种程序。守护进程的名称后一般带有“d”字样。这里有几个例子——httpd是HTTP服务器的守护进程;named是域名服务器的守护进程;然而,须要注意,Nginx不是这种状况。从命令行启动Nginx的时候,守护进程会当即返回到命令行提示符,在大多数状况下,用不着向终端屏幕输出数据。所以,启动Nginx的时候,屏幕上不会出现任何文本信息,而且提示符会当即返回。shell

用户和组服务器

一个最普通的麻烦来源是,对Nginx设置的是一个无效的访问权限的时候——因为用户或用户组的错误配置,常常会报告“403 Forbidden”错误,由于Nginx不能访问你须要的文件。根据进程的功能,可能须要两个不一样级别的进程权限测试

  1. Nginx的master进程,由root启动,在大多数类Unix系统上,由root账户开启的进程容许在开听任何端口的的TCP套接字,可是其余用户启动的程序只能监听在1024以上的端口。若是不是以root账户启动Nginx,将没法获得标准的端口(如80或443),即没法启动。并且,经过user指令在配置文件中指定的用户和组用于工做进程,在这里不考虑ui

  2. Nginx的工做进程,由配置文件中user指令指定的账户开始运行,配置文件中的设置优先于在配置时使用configure脚本开关选项指定的用户。若是没有作任何指定,工做进程将以用户nobody开始,用户组为nobody组spa

Nginx命令行开关项命令行

Nginx二进制文件接收命令行参数,用于执行各类操做,控制后台进程。为了获取该命令的所有参数列表,能够请求help帮助:日志

# cd /usr/local/nginx/sbin
# ./nginx -h

下面将描述这些开关项的做用,一些用于控制守护进程,一些用于在应用配置上执行各类操做。code

启动和中止守护进程

能够经过不带任何参数的Nginx二进制文件来启动Nginx。若是该守护进程已经运行,就会有一条消息指出已经有一个套接字在指定端口监听:

# ./nginx

若是有守护进程已经在运行,结果以下:

除了这一点,你能够控制这个守护进程,能够中止它,重启它,或只是从新载入配置文件,控制是经过nginx -s 命令向进程发送信号来实现的:

命令                                                             
描述
nginx -s stop
当即中止守护进程(使用TERM信号)
nginx -s quit
温和地中止守护进程(使用QUIT信号)
nginx -s reopen
从新打开日志文件
nginx -s reload
从新载入配置文件

注意,在开始运行这个守护进程,中止它或执行前面说的任何操做时,会首先解析和确认配置文件,若是配置文件无效,无论提交什么命令,都会失败,甚至是试图中止一个守护进程。换句话说,若是配置文件无效,兴许没法中止Nginx服务。

有一种替代方法能够终止该进程,只适用于危急状况,即便用killkillall命令:

# killall nginx

测试配置文件

在配置文件中,任何不起眼的错误均可能致使你丧失对服务的控制权——可能没法以正常的方式中止服务,显而易见,服务拒绝运行。

所以,在不少状况下,下列命令是颇有用的,能够检测语法,合法性和配置文件的完整性:

# /usr/local/nginx/sbin/nginx -t

开关选项 -t 表明测试配置文件。Nginx将从新解析配置文件,让你知道配置文件是否有效。以下图:

显而易见,必须可以熟练控制配置文件。生产环境中的服务器,这样作是很危险的,要不惜任何代价避免这种状况。既然这样,一个最好的实践是将新配置放在一个单独的临时文件中,而后再对该文件进行测试。Nginx提供了一个 -c 选项,即可进行这种测试

# ./nginx -t -c /home/alex/test.conf

该命令将解析配置文件 /home/alex/test.conf,肯定它做为Nginx配置文件的有效性。此后,再覆盖原来配置文件,而后从新载入服务器配置文件:

# cp   /home/alex/test.conf   /usr/local/nginx/conf/nginx.conf
# ./nginx -s reload

其余开关选项

其余开关选项在许多状况下早晚都会用到: -V 选项,不但会告诉你当前Nginx的版本号,更重要的是还会提醒你在configure脚本那一步所添加的开关选项,换句话说,该开关选项将显示你在使用运行configure脚本配置的各类开关选项。

相关文章
相关标签/搜索