Nginx支持一下命令行参数
-? | -h 打印出命令行参数的帮助
[root@localhost nginx]# ./nginx -?
nginx version: nginx/1.8.0
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx/)
-c filename : set configuration file (default: /usr/local/nginx/nginx.conf)
-g directives : set global directives out of configuration file
[root@localhost nginx]# ./nginx -h
nginx version: nginx/1.8.0
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx/)
-c filename : set configuration file (default: /usr/local/nginx/nginx.conf)
-g directives : set global directives out of configuration file
-c file 使用可用的配置文件而不是默认的文件
[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]# ls
client_body_temp fastcgi_temp mime.types.default sbin uwsgi_temp
conf html nginx scgi_params win-utf
fastcgi.conf koi-utf nginx.bak scgi_params.default
fastcgi.conf.default koi-win nginx.conf scgi_temp
fastcgi_params logs nginx.conf.default uwsgi_params
fastcgi_params.default mime.types proxy_temp uwsgi_params.default
[root@localhost nginx]# ./nginx -c nginx.conf
[root@localhost nginx]#
-t 不运行,而仅仅测试配置文件。Nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所有引用的文件。
[root@localhost nginx]# ./nginx -t
nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful
-v显示nginx的版本
[root@localhost nginx]# ./nginx -v
nginx version: nginx/1.8.0
-V显示nginx的版本,编译器版本和配置参数
[root@localhost nginx]# ./nginx -V
nginx version: nginx/1.8.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
built with OpenSSL 1.0.1c 10 May 2012
TLS SNI support enabled
configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_stub_status_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-ipv6 --with-pcre=../pcre-8.37 --with-zlib=../zlib-1.2.8 --with-openssl=../openssl-1.0.1c --user=nginx --group=nginx
[root@localhost nginx]#
-s signal 发送一个信号给主进程,这些参数可以以下的参数中的一个:
./nginx –s stop
快速关闭
./nginx –s quit
优雅关闭
./nginx –s reload
重新加载配置文件,使用一个新的worker进程启动一个新的worker进程,优雅的关闭旧的worker进程。
./nginx –s reopen
重新打开日志文件
Nginx控制信号
可以使用信号系统来控制主进程。默认,nginx将其主进程的pid写入到/usr/local/nginx/nginx.pid文件中。通常传递参数给./configure或使用pid指令,来改变文件的位置。
主进程可以处理以下的信号:
TERM,INT
快速关闭
QUIT
从容关闭
HUP
重载配置
用新的配置开始新的工作进程从容关闭旧的工作进程。
USR1
重新打开日志文件
USR2
平滑升级可执行程序
WINCH
从容关闭工作进程
尽管你不币自己操作工作进程,但是,它们也支持一些信号:
TERM,INT
快速关闭
QUIT
从容关闭
USR1
重新打开日志文件
Nginx启动、停止、重启命令
Nginx启动
[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]# ls
client_body_temp fastcgi_temp mime.types.default sbin uwsgi_temp
conf html nginx scgi_params win-utf
fastcgi.conf koi-utf nginx.bak scgi_params.default
fastcgi.conf.default koi-win nginx.conf scgi_temp
fastcgi_params logs nginx.conf.default uwsgi_params
fastcgi_params.default mime.types proxy_temp uwsgi_params.default
[root@localhost nginx]# ./nginx
[root@localhost nginx]#
Nginx从容停止命令,等待所有请求结束后关闭服务:
ps –ef | grep nginx
kill –QUIT nginx主进程号
[root@localhost nginx]# ps -ef | grep nginx
root 18252 1 0 15:35 ? 00:00:00 nginx: master process ./nginx
nginx 18253 18252 0 15:35 ? 00:00:00 nginx: worker process
nginx 18254 18252 0 15:35 ? 00:00:00 nginx: worker process
root 18304 14028 0 15:37 pts/0 00:00:00 grep nginx
[root@localhost nginx]# kill -QUIT 18252
[root@localhost nginx]# ps -ef | grep nginx
root 18389 14028 0 15:40 pts/0 00:00:00 grep nginx
[root@localhost nginx]# ./nginx
[root@localhost nginx]# ps -ef | grep nginx
root 18393 1 0 15:40 ? 00:00:00 nginx: master process ./nginx
nginx 18394 18393 0 15:40 ? 00:00:00 nginx: worker process
nginx 18395 18393 0 15:40 ? 00:00:00 nginx: worker process
root 18399 14028 0 15:40 pts/0 00:00:00 grep nginx
[root@localhost nginx]# kill -QUIT `cat /usr/local/nginx/nginx.pid`
[root@localhost nginx]# ps -ef | grep nginx
root 18447 14028 0 15:42 pts/0 00:00:00 grep nginx
[root@localhost nginx]#
Nginx快速停止命令,立刻关闭nginx进程
ps -ef | grep nginx
kill –TERM nginx主进程号
[root@localhost nginx]# ./nginx
[root@localhost nginx]# ps -ef | grep nginx
root 18503 1 0 15:44 ? 00:00:00 nginx: master process ./nginx
nginx 18504 18503 0 15:44 ? 00:00:00 nginx: worker process
nginx 18505 18503 0 15:44 ? 00:00:00 nginx: worker process
root 18508 14028 0 15:44 pts/0 00:00:00 grep nginx
[root@localhost nginx]# kill -TERM 18503
[root@localhost nginx]# ps -ef | grep nginx
root 18557 14028 0 15:46 pts/0 00:00:00 grep nginx
[root@localhost nginx]#
如果以上命令不管用,可以强制停止:
Kill -9 nginx主进程号
如果嫌麻烦可以不用查看进程号,直接使用命令进行操作
其中/usr/local/nginx/nginx.pid为nginx.conf中的pid命令设置的参数,用来存放nginx主进程号的文件
Kill –信号类型(HUP|TERM|QUIT) `cat /usr/local/nginx/nginx.pid`
例如:
kill -QUIT `cat/usr/local/nginx/nginx.pid`
nginx重启命令:
1简单型,先关闭进程,修改你的配置后,重启进程。
kill -QUIT `cat/usr/local/nginx/nginx.pid`
./nginx
2 重新加载配置文件,不重启进程,不会停止处理请求
3 平滑更新nginx二进制,不会停止处理请求