Nginx主程序使用介绍
守护进程和服务
<br\>
在首次运行Nginx之前,了解此应用程序的性质很重要。 有两种类型的计算机应用程序 – 那些需要用户输入,因此在前台运行,另一种在后台运行。 Nginx是后一种类型,通常称为守护进程。 守护进程名称通常带有尾随的“d”,这里可以提到几个例子 – httpd,HTTP服务器守护进程,是几个Linux发行版下给Apache的名称; named,域名解析服务器守护进程; 或crond任务调度器 – 当Nginx从命令行启动时,守护进程立即返回终端,并且在大多数情况下,甚至不会输出任何数据到终端。
用户和组
<br\>
了解Nginx的进程架构,特别是其各种进程运行的用户和组是非常重要的。由于用户或组的错误配置 ,可能导致Nginx出现权限之类的错误,你最终会得到403 Forbidden HTTP错误,Nginx不能访问请求的文件。
有两个级别的进程,可能具有不同的权限集:
Nginx主进程:这应该以root身份启动。 在大多数类Unix系统中,使用root帐户启动的进程允许在任何端口上打开TCP套接字,而其他用户只能在1024以上的端口上打开侦听套接字。如果您不以root身份启动Nginx,则标准端口 80或443将无法访问。
Nginx工作进程:这些由主进程在您配置文件中使用user指令指定的帐户下自动生成。 配置设置优先于您在编译时指定的配置选项。 如果您没有指定任何这些,工作进程将作为用户nobody和组nobody(或nogroup,取决于您的操作系统)启动。
Nginx命令行选项
<br\>
Nginx二进制接受命令行参数以执行各种操作,包括控制后台进程。 要获取完整的命令列表,可以使用以下命令输出帮助信息:
- [alex@example.com ~]$ cd /usr/local/nginx/sbin
- [alex@example.com sbin]$ ./nginx -h
启动和停止Nginx进程
<br\>
你可以不用指令任何参数来启动Nginx。 如果守护程序已在运行,将显示一条消息,套接字已在侦听端口上侦听:
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) […]
[emerg]: still could not bind().
除此之外,您可以通过停止,重新启动守护程序或简单地重新加载它的配置来控制守护程序。 通过使用nginx -s命令向进程发送信号来控制进程。
nginx –s stop:立即停止守护进程(使用TERM信号)。
nginx –s quit:正常停止守护程序(使用QUIT信号)。
nginx –s reopen:重新打开日志文件。
nginx –s reload:重新加载配置。
在以上命令无法停止nginx的情况下,终止进程的另一种方法是使用具有root权限的kill vs killall命令:
- [root@example.com ~]# killall nginx
测试配置文件
<br\>
测试Nginx配置文件的命令为:
- [alex@example.com ~]$ /usr/local/nginx/sbin/nginx –t
也可以测试指定的配置文件:
- [alex@example.com sbin]$ ./nginx –t –c /home/alex/test.conf