找回密码
 立即注册
查看: 2335|回复: 9

Nginx启动,重启以及基本命令

[复制链接]

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx; G) I- m7 Z! `1 x
进入nginx安装目录执行4 z( Z! ?# n) E! J, O2 `3 x  r
$ F* V2 ^: J. `' Q9 o+ \! g
./sbin/nginx -c ./conf/nginx.conf; ?6 q4 d2 J" m3 E. c
2.验证nginx配置文件是否正确
7 l' g: L, Q) ^7 m% a+ }6 S
- c- }% N& P% @: _- l' G8 |方法1. 进入nginx安装目录sbin下,输入命令. x! A; V1 T5 R8 a: T: ~& Q

$ V: _# a: G& Q# W( F. v9 m+ \! s& [9 l; ]./nginx -t
. s" E) @- ]/ M+ \+ i9 m2 \1 E回显test is successful说明配置正确
  d- S5 W( X7 Y% n! Q0 ?2 I0 l9 X: T1 R. }" S, y" f$ V
方法2. 在启动nginx命令 -c 前加 -t
, l4 ^" X3 E, x# @$ @3 z, c0 G8 A8 Z# a5 r) L
./sbin/nginx -t -c ./conf/nginx.conf/ ^' e7 o  v" S( X) a! ?
3.停止nginx
8 U) N; C3 _$ o& W- ]5 U1 z方法1:  u/ C/ n" G% k, `8 a

" P% n) e! Z! y% ~强制停止:. z& E8 {) N- C2 v9 g( d
: X. z+ b$ ~$ M' s
./sbin/nginx -s stop
9 _0 X. s% N* f2 I处理完请求后停止:
4 ^+ c2 C+ Y/ P/ E$ m! j. e# M3 I1 J
./sbin/nginx -s quit' V7 y. y/ b& `9 O! @4 R  l
方法2:2 J( e* ~% E- R

2 a& l2 M' E* \2 O  vps -ef|grep nginx: W( V! x3 ~- K! u8 ?  f
找到对应的nginx进程号
! q! ~9 \5 H7 U& s' _6 |2 S% m: W1 S" |/ n; h  c
正常停止:
* n) z+ C5 h$ L0 E8 N1 _( T9 @/ n( k
kill -15 进程号* K7 T0 T" f# L# T% N# x6 |
强制停止:
$ J2 m9 f# R* @; n* A; `0 v& n; X' E0 @( |0 }1 O* P
kill -9 进程号7 D- {7 Y* p0 p) p
4.重启新加载nginx配置文件1 j7 n7 }5 A9 N, f) L
方法1. 进入nginx安装目录执行
3 h2 w- Q! v; L& E+ s6 W7 s6 J: K$ {- q
./sbin/nginx -s reload
+ M- n5 @! F" i& p: r& l6 O6 s3 G5.重启nginx服务
6 @$ _9 J( R) C& a方法1. 进入nginx安装目录执行
8 J+ G! W: ?) i# K; r
- `0 w, h$ @. Q, P/ X./sbin/nginx -s reopen) t* Y$ j2 B$ I: d# ~! c, k
方法2.查找当前nginx的PID进程号,并kill: P' F* }( [# w' Z* Z3 C! j" s0 }

0 h* a6 x% a  Z# E5 X  Z6 N; |ps -ef|grep nginx4 o4 m2 D# x! a/ z
找到对应的nginx进程号,进行7 J; o- ~' t  ~: e; N) a
! }/ X, _; y! r% I* T  t7 g: V: \
kill -HUP 进程号
! L7 G5 ^' _' c& y- z+ A1 p  O- {. X+ j4 c

, H  t; v' t6 c( K# ?2 O6 zkill -1 进程号' u# |; d: v- M0 @9 X& g
实现重启nginx服务
9 y: G( B- p. X1 U6 S
# D7 [5 @$ ^7 M0 v) |0 l 6.查看nginx版本信息
/ H4 i% W/ v! p  G( f. h1).只显示版本信息  c! P3 X# ^: I0 s4 f

7 I4 ~) j+ M; j& c进入nginx安装目录执行: Z- Z9 `' N: g+ F$ a4 V
9 `8 o# n' ^# |
./sbin/nginx -v3 q4 c9 h1 v! f, {
2)显示版本信息和配置信息% i! w& ~/ P  x8 Q0 m! y/ Z6 s

- @- N* `. i6 W进入nginx安装目录执行
% B9 _0 K( x# K& O- T6 R
9 I( @" h2 u& q2 d" U./sbin/nginx -v
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
4 P# B: F( R2 P* z#1.直接启动
2 F7 g) k; a! w#进入nginx目录,执行启动命令
7 r+ u! M) Z. @2 k1 F* e2 Dcd /usr/local/nginx/sbin
0 V) a% p/ P3 z- T# V- g$ @./nginx
- Q5 I2 E0 U* ], J1 q; M( O# 或者直接
8 [, z+ {0 N  T& m' j/usr/local/nginx/sbin/nginx: |% p* _$ s6 z. @0 Z6 `, r: p
#2.指定配置文件方式启动' K( n; `5 F; Z/ ~9 A
#进入nginx目录,执行启动命令
% E/ t! I6 T6 c  h3 Kcd /usr/local/nginx/sbin
' {& V' J) Q* E- y& a./nginx -c /usr/local/nginx/conf/nginx.conf
, q1 j7 v/ W* l  Z2 ?#或者
: m: A  d! \+ j% n  w/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/ c# _, P7 p! v! ?2 X$ T! ^
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
+ J% S6 o, [* L0 g! c( K: a' \( E+ v0 U/ q8 Q" c
#进入nginx目录
# P* a% n0 C% Rcd /usr/local/nginx/sbin9 m1 \7 [; G& j% m0 _
#检查配置文件是否有语法操作
4 M* I' T+ G+ W' C+ V./nginx -t" W4 i* |6 p) }/ J, B; |( [
# 或者显示指定配置文件
+ h: c) y! i* N7 j+ Q$ m! p./nginx -t -c /usr/local/nginx/conf/nginx.conf
6 w2 r$ a' n5 s9 l2 S, K
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
- p3 X3 s2 x' `4 Z
& `3 V/ g9 B7 q$ E#进入nginx目录6 W0 ^# X' q$ T9 L5 D
cd /usr/local/nginx/sbin! _' }) L* Q2 p7 M6 h
#执行重载命令
) {" U* Q+ S3 g8 `1 C1 T6 U: G0 [./nginx -s reload
/ z0 ~- |& J  I
: ~3 h$ u* L) v) B) k6 ^nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
" _3 }9 A# o. r. Y% J3 o9 O2 knginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件7 J0 T! v% {, n1 Y  ]. B2 \; M! J* f

( J& E+ O! G) M( |Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
- f" d0 h$ w2 I5 [Nginx启动新的worker进程,采用新的配置文件
# r1 D, D. s; V% v# Z5 @$ W. T# vNginx将新的请求分配新的worker进程' Z% v% m; m! Q4 A6 y) d/ V& i
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程: R8 F. i3 w  D
重复上面过程,知道全部旧的worker进程都被关闭掉。
# C) ]: w+ h2 O! `/ b所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx4 I% ^( C) n4 A$ B& [
; Z8 ?' y9 R4 V3 ?
#进入nginx目录" e7 g% j2 Z( G% K5 t3 f
cd /usr/local/nginx/sbin/ e2 h: g- Z. l( z0 N, K
# 快速停止nginx
: @" P% v" |6 }& {# u* @( h./nginx -s stop
* e7 K) j. e' _4 \5 g# W# k# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx! }/ Z5 y  i  z* H- w
./nginx -s quit
0 N$ m; g" f6 B7 c) f, N. C& S4 s
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件
; }& E4 H# V+ B# h% ~
3 n$ N. i- k% n! }$ }#进入nginx目录
3 y) G7 T  x; s% O% z) @7 hcd /usr/local/nginx/sbin
. e( s( Z4 G6 w0 d% ~4 f$ [5 }# 重新打开日志文件& r' j+ o+ y7 C" f# ]" d
./nginx -s reopen
- g8 J$ |5 |7 ]' \  l' A
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。5 ~! G* b# K5 o/ `
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
9 [6 \+ t% P* m/ ?但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。6 t* }6 r. ]* h# B5 I' |
一般我们需要两步:( E# n2 }1 V- U+ Z2 M- z! L

" O  T7 C/ h8 M  W6 s" X移走文件并重命名) _( A9 G1 A& C* N
利用 nginx 的 reopen 功能,完成新日志文件的生成。9 Q( m0 N, n6 ]
参考地址,感谢博主分享
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx7 g; k0 h: {7 ]0 S

7 {. V+ x. S  W- P. l+ P# 查看进程号,下图  master的为主进程号
) F- g2 g$ M& l0 ?3 k6 kps -ef | grep nginx, P3 ?0 ], O# Q# j& @6 i" z
#从容停止Nginx
; ?# C% @* o2 {0 E$ v3 Pkill -QUIT 主进程号
! h- \% m, |$ d7 v7 x#快速停止Nginx! c9 q. g6 D& U/ S0 |1 B0 }
kill -TERM 主进程号
: h7 ^% c8 a8 \. k#强制停止Nginx
# e. _$ R! l( i" |$ tpkill -9 nginx. D  F9 _; ]1 s& D4 ~8 l
#平滑重启nginx:
; `4 z  _  p9 Ekill -HUP 主进程号
! }0 k) L$ r; Y' q+ \& Y
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:36:23 | 显示全部楼层

Windows下Nginx的启动、停止等命令

1、启动:( d$ x0 ~9 M( T! P; b

% \7 ^2 t9 l4 QC:\server\nginx-1.0.2>start nginx
( K$ F9 K" ^# a9 W# ]' \0 u( [7 p4 b( C1 w

2 Q7 X4 _& B' W: X7 }; |) A( i* f6 t+ F; j4 u: v. x! s* E0 X
C:\server\nginx-1.0.2>nginx.exe
5 z. D% k  @) Q! R  T6 G$ J, u8 W( Q. ~# e8 Q! ?6 _
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。" f" ~! R, I; T: S

6 _& y) B% R4 T+ S) B' W如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
3 {2 [) Q5 {, Q3 f6 g- X, g% H6 o; E( P. B) x+ d
2、停止:
" M5 s  J  i6 ]
/ {1 V8 s7 t$ p5 a$ ?1 AC:\server\nginx-1.0.2>nginx.exe -s stop" |( i+ @: Y% Y7 z0 R" S$ O- j, a

$ j" s6 Y$ z! u. U4 t; V. H8 z. f" b5 X' W; ], s7 {; S  o

( n/ S" I! v6 O4 D. cC:\server\nginx-1.0.2>nginx.exe -s quit3 s: e9 ~/ e* R% X( u
9 F' ?4 y  A, I) p$ v# C
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
7 k* U$ V2 F/ I5 G9 Z
' U9 W; g. Q7 P: l) c执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe: O+ P/ e5 ^# e+ g% x7 D; \

/ ^( ~  `; Q  F# _" u7 t* L还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
% D+ j- ^; ^6 N
* b( K, B" k% @7 i9 ]% `% Z& k9 wtaskkill /f /im nginx.exe > null 杀死nginx进程7 m4 y% V; r4 s. T
3 ^: l; ]. o7 Z7 F; `
3、重新载入Nginx:( n4 B& B) l  y0 A$ o( M* K
" z, {% P) W! l# P8 t- R2 n
C:\server\nginx-1.0.2>nginx.exe -s reload
1 p' q+ O6 j5 F* Q& h/ ?' F0 [
/ u5 z( q# v0 [, `5 K. Q) |' s当配置信息修改,需要重新载入这些配置时使用此命令。8 d5 R% e) {8 |! E

; S0 y. `7 }1 _1 @4、重新打开日志文件:: w0 j  |4 I! O9 u5 q6 z

) }7 S8 }# P, Z5 T, RC:\server\nginx-1.0.2>nginx.exe -s reopen! J" o( M" P' T* p5 \  s
- o) a6 E4 {: {. f! b0 i1 u
5、查看Nginx版本:
) {9 G, ]  T$ f2 V) K" n# [2 l6 S! U
9 B& C# B; [6 H3 u' M5 ]7 |7 Q. \- L# AC:\server\nginx-1.0.2>nginx -v' O, Q4 X" B) u0 B& E+ u( F

$ ~& F6 t+ l& f* P9 a$ Wnginx: nginx version: nginx/1.0.2
4 X$ m* d5 R/ E, P. s* w7 ]/ ]' U$ a, M  c

" F5 {% i2 ]* t/ V( C+ e' S& H5 h( J7 V4 y- ?9 x+ k4 w  H
C:\server\nginx-1.0.2>nginx -V# Z& k5 V- d3 [3 \
- v4 F; J* X1 u/ V0 e! \; U
nginx: nginx version: nginx/1.0.2
7 ]0 q6 _( Q) M( M5 y" O# a( e
" Z0 G7 \3 T$ O& A" c( c! Wnginx: TLS SNI support enabled
: f, a* R* P. n. G" p0 W; ^) R9 R
nginx: configure arguments: --builddir=objs.msvc8 --crossbuild=win32 --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs.msvc8/lib/pcre-7.9 --with-zlib=objs.msvc8/lib/zlib-1.2.3 --with-select_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-mail --with-ipv6 --with-openssl=objs.msvc8/lib/openssl-0.9.8r --with-openssl-opt=enable-tlsext --with-http_ssl_module --with-mail_ssl_module
& n' r) {  Z+ d% [2 X
; o& l- R1 ~8 i3 D注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
( R7 |6 b& V3 i+ ?0 B: m9 x/ f! R  [" C2 l* z( k& q' y

) R$ I; H# |) X4 @6、测试或载入指定配置文件:# E/ w8 M; h* O! ~# |" l! X& d
# @! F: v  Q$ F+ H. x
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
8 }5 H3 m' F- S$ \5 c$ L+ [
5 Z8 f( W* C; t/ vC:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
2 D$ i$ _1 N  }- P" q! }* d5 x1 x7 n9 s. C
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok. t6 d6 ^# F8 A1 n/ Z) N

# q7 m! N: W$ m  M. bnginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful" M  k9 H( Q/ Z. E1 X
4 U* \+ }0 j4 F% A! a/ v
载入指定配置文件
: ^! c, m% q, e: W) Z: Q
' h9 l! E. A* J3 h) gC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
2 w, e3 f: z- @3 k# Q2 p" J+ y
3 x  e! ^! V9 O% z" V- R
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程" j8 O/ b8 w  d
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx * T& p8 C# h, H% Q/ j- `
start nginx : 启动nginx) }+ Q' c/ p4 c9 b7 B
nginx -s reload  :修改配置后重新加载生效
; x- m, e0 K$ f# |, S nginx -s reopen  :重新打开日志文件, M! k" Y' Z7 I5 O! E5 \* a
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确5 s$ Y" g8 U! c  n; I
       关闭nginx:  L$ q  C( G+ a& R
nginx -s stop  :快速停止nginx
% |/ y( [' c6 [$ M nginx -s quit  :完整有序的停止nginx! O4 w+ y& k: F4 n+ @
如果遇到报错:* b5 N) x! X; z  R3 j; o, X$ @
bash: nginx: command not found* v9 N7 h% K9 e: W0 W; {  b6 [
有可能是你再linux命令行环境下运行了windows命令,! O+ S! X. O; t' X& z- h
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload2 h' Z4 k7 Q7 o& i0 ~! o7 `: u
或者 用windows系统自带命令行工具运行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|通达创业无忧 ( 粤ICP备2023021749号|粤公网安备 44030402006137号 )

GMT+8, 2026-2-10 16:38 , Processed in 0.013245 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表