守护进程和服务
nginx是作为守护进程运行在系统中,在启动nginx的时候屏幕不会输出任何信息,若有输出则是启动时出现的错误信息。
用户和组
最常见的错误是由于用户或用户组的错误配置,对nginx的设置是一个无效的访问权限的时候,nginx没有权限访问你需要的文件,经常出现“403 Forbidden”错误。
根据进程功能,可能需要两个不同级别的进程权限:
1、nginx的master进程,由root启动,在大多数类unix系统,root用户开启的进程允许在开放任何端口的TCP套接字,但是其他用户启动的进程只能监听在1024以上的端口,因此,如果不是以root用户启动nginx将无法监听80、433端口,出现无法启动的问题。
2、nginx的工作进程,由配置文件中user指令指定的账户开始运行,配置文件的设置优先于在配置时使用configure脚本开关选项指定的用户,如果没有做任何指定,工作进程将以用户nobody和用户组nobody运行(或nogroup,取决于操作系统)。
nginx命令行开关项
nginx二进制文件接收命令行参数用于执行各种操作,控制后台进程,获取该命令的全部参数列表:
[root@localhost sbin]# ./nginx -h |
以上开关项一些用于控制守护进程,一些用于在应用配置上执行各种操作。
启动和停止守护进程
可以使用不带任何参数的nginx二进制文件来启动nginx,如果该进程已经运行,就会有一条消息指出已经有一个套接字在指定端口监听:
使用nginx -s命令向进程发送信号来实现控制进程:
命令 | 描述 |
---|---|
nginx -s stop | 立即停止守护进程(使用TERM信号) |
nginx -s quit | 温和的停止守护进程(使用QUIT信号) |
nginx -s reopen | 重新打开日志文件 |
nginx -s reload | 重新打开配置文件 |
注意:对进程的控制操作都是基于配置文件是配置正确的前提下进行的。
强制杀死nginx进程:
[root@localhost sbin]# killall nginx |
测试配置文件
检测语法、合法性、配置文件完整性:
[root@localhost sbin]# ./nginx -t |
开关选项-t表示测试配置文件,nginx将重新解析配置文件来确定配置文件是否有效,有时候nginx无法启动不一定是配置文件问题,可能是f套接字问题、无效路径、不正确的访问权限等。
对于生成环境不建议直接修改配置文件,可以将新的配置放在一个单独的临时文件中,然后对该文件进行测试,nginx提供了-c选项进行测试:
[root@localhost sbin]# ./nginx -t -c test.conf |
测试通过后再使用。
其他开关选项
1.-V(大写)选项
-V选项不仅可以列出当前版本号而且可以列出执行configure脚本配置的所有开关选项:
[root@localhost sbin]# ./nginx -V |
2.-g选项
-g选项用于指定额外的配置指令
[root@localhost sbin]# ./nginx -g “timer_resolution 200ms;” |