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

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

[复制链接]

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx3 p- H4 L) X: H7 i
进入nginx安装目录执行
6 C0 f1 V+ {2 w$ O4 ]7 |7 H; p' ?3 Z) R  N
./sbin/nginx -c ./conf/nginx.conf, x- R* o# O0 P. U2 N9 _- K. ~4 E  @
2.验证nginx配置文件是否正确
8 ~0 S" r1 r5 d' V( o- K: J# ^! v" N. h8 B) Y
方法1. 进入nginx安装目录sbin下,输入命令* x4 j% y( T1 i. h  Q1 l, V
% a% H! W' h# T2 C
./nginx -t0 B$ e9 D; |3 ^  W* T8 g. t
回显test is successful说明配置正确
4 D# I7 T+ i* M2 m. z0 l, O: q9 ?5 x, O  `$ g. N2 \3 k
方法2. 在启动nginx命令 -c 前加 -t* w/ ^9 m6 E9 R% a
2 ^$ l3 r; _5 z: w/ S
./sbin/nginx -t -c ./conf/nginx.conf' [7 e* R/ G( \, q
3.停止nginx
) U+ h* N/ x$ i! ~# L- y4 a& M方法1:
- W# _6 h6 Y! X5 A6 ~8 q. b- }; V5 [. @5 l
强制停止:
" t! i# ]$ P. S( ^
5 X  u- D9 J2 n./sbin/nginx -s stop
, `+ n& P) g  D9 ?1 q$ \/ H处理完请求后停止:8 ~. p! H2 I" X/ e  b! ]( H8 i
9 {8 Z" h1 h9 s: I1 \3 f3 r7 X' [
./sbin/nginx -s quit0 k5 L4 M# o' _( l6 h
方法2:
  H/ ~  b% n' ]" K3 ?. V* N
) Y* I2 y: `) X, j6 f7 ^; K5 V* ups -ef|grep nginx; m* F7 z# p6 D2 [8 g
找到对应的nginx进程号
- I: v) _* i& \7 W/ H" x' t+ ~: I
; V% C6 c) d9 h- c& r正常停止:) w  c0 w# a/ N# h
& c( S) E% p& F5 K" m! U% f
kill -15 进程号; \! C1 z+ a) e7 _. f
强制停止:1 I5 A" f7 _7 ]  f1 A
6 F0 \( b1 {( T7 T6 s
kill -9 进程号
* M* ~9 [6 ~; ?4.重启新加载nginx配置文件
8 J3 D" w& y# c' S  e方法1. 进入nginx安装目录执行- t9 f5 E1 `$ \# U; F3 D! V: G" a
+ h1 H# L/ J0 c# Z
./sbin/nginx -s reload
( E( V+ b# e9 _5 o5.重启nginx服务
# M6 ~/ j4 y  f, E5 k方法1. 进入nginx安装目录执行
6 N' J% r: L" u" o" j0 I  I0 F3 L+ i2 V& c3 R. J' T
./sbin/nginx -s reopen
/ y3 [2 k- |7 ^- z6 R3 f$ w3 s* ?1 C 方法2.查找当前nginx的PID进程号,并kill
7 V+ F& Q+ P5 g& k2 o
* Z/ {: l0 P: E  F& Gps -ef|grep nginx
7 N! a/ |1 i  \% ^4 P  P3 f( A找到对应的nginx进程号,进行2 B' y$ J& a# _* m

; u. z% s: P/ j1 T( hkill -HUP 进程号- l' H( C+ ^  A0 Y* c6 I% p

" y* |. T# L6 `& E3 ]
/ y& Z8 `# R0 H, Y7 A+ R3 fkill -1 进程号
; a2 M/ T& _) B实现重启nginx服务
* Y: [/ [4 ?- n/ q5 s" d2 c6 t  J4 x
6.查看nginx版本信息" }7 s( @% ~% y- D1 ?' P7 q; Z
1).只显示版本信息, j+ s7 d- j2 [' t

; _! v+ n4 m" L% {- s进入nginx安装目录执行
- C4 B, H7 _7 Y$ X/ G7 n% p& C4 n& G6 [4 M
./sbin/nginx -v
& X$ z1 B) f5 B5 T& B7 n( g 2)显示版本信息和配置信息* i  o2 I2 Z1 F; Y4 E) I2 f- ]0 [

7 R) j! U7 l7 p5 M. h1 K" X6 f8 K进入nginx安装目录执行
( E7 k7 \/ b4 I' v% H" j0 b1 W0 w2 h3 b0 j" [
./sbin/nginx -v
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动% J9 `1 K* F/ p7 K  t
#1.直接启动
9 ?1 b6 k# y" }: a) K#进入nginx目录,执行启动命令
# B  H% e1 N2 p$ Z3 y9 ^/ f* Mcd /usr/local/nginx/sbin" g( F7 o+ H+ {* s3 I, k4 B8 ]
./nginx! @4 `$ I( D# y9 n  |$ J/ m
# 或者直接. t, O# e- T. N  E4 W! C
/usr/local/nginx/sbin/nginx
1 x3 L) B  T9 i; n$ s$ ^, B#2.指定配置文件方式启动2 p5 j/ N8 x, c. \" x
#进入nginx目录,执行启动命令* t/ {8 I; d1 i, |1 d' `- C0 o$ o
cd /usr/local/nginx/sbin
5 p. }8 R" S' z; T! W& P) ^5 E./nginx -c /usr/local/nginx/conf/nginx.conf
# n. T9 ]+ D9 Z! g( R#或者
+ P- G* m; a4 T9 @/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf2 t2 m! ?/ z' \; R
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件$ x/ f4 F" h2 N. O  T

% }0 ^- p  ~# _/ V#进入nginx目录
/ _+ ~7 _4 [1 n! {/ _8 {cd /usr/local/nginx/sbin2 E5 u  }. U, w! a
#检查配置文件是否有语法操作( z% h3 N9 \1 @) R
./nginx -t6 m) {0 C; ~7 e* L: R6 Z7 \3 U/ k
# 或者显示指定配置文件
' X  O. b' Z8 f. Q./nginx -t -c /usr/local/nginx/conf/nginx.conf. d/ _$ ~; V& [1 d  D
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
& n& A# y# z8 l- R7 @% G. S
' H% j: @1 I1 i4 Z( q* J+ c8 m#进入nginx目录% q3 Y: M. ]8 [! [
cd /usr/local/nginx/sbin' g7 z7 \; P5 ~+ q8 H, D
#执行重载命令# d& W& T, v/ u( B& T# I
./nginx -s reload% t) p4 B$ w. o, ~7 K
( j) X) Y' U! Q
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。( z" f7 P) o" l) g" G/ P
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件$ b  ]9 j/ J  i
/ d2 L% K. `2 ~$ ]7 I0 y
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)% D* F3 G. j" }; [2 A4 T
Nginx启动新的worker进程,采用新的配置文件+ T3 d% Z1 x5 N- K
Nginx将新的请求分配新的worker进程
& A  x" n3 r# v5 ^Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
4 \) C0 g$ S+ _) u1 J7 O重复上面过程,知道全部旧的worker进程都被关闭掉。
  o5 `% {8 ]: K& [& e  f$ E, F3 I所以,重启之后,master的进程号不变,worker的进程号会改变。
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx7 A3 O% J, G! C$ h. H6 }
- U3 x  V, T  J) }
#进入nginx目录1 w% w% A( m! [6 a
cd /usr/local/nginx/sbin
" |7 k; T  _/ ^4 X; b( O# 快速停止nginx
# U7 a2 W5 Y2 X3 Q" w, E3 T./nginx -s stop4 X0 E7 G  a* c0 V- k3 \0 R5 ~
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
- X2 x4 O' d' S: }./nginx -s quit! N( f$ D3 w; J2 T1 G1 W
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件, S+ p8 B6 H. j; t( s

1 y2 ^7 a3 w: _5 C#进入nginx目录
' ^* l- k+ I7 t# Ccd /usr/local/nginx/sbin
6 m+ q; E. ]" [0 W# 重新打开日志文件
( \( c+ i# g/ A. E' \" K./nginx -s reopen) m  }' @5 v  E) F1 m4 h
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。% ^' R6 o( C' S2 n/ [
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。5 W2 H+ E( c; v! i' z
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
9 X5 D# n8 h) `, G- a一般我们需要两步:6 \% ~' V3 X; H, X& g
  f% B+ r( d5 x4 g
移走文件并重命名
0 M2 V$ f+ z; H' n$ S利用 nginx 的 reopen 功能,完成新日志文件的生成。
1 }8 ~. ]; x7 r6 i  E/ A参考地址,感谢博主分享
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx; r9 U& K5 @6 n6 M  u) Q
5 e  x3 ]0 j3 t: M8 j( j6 N
# 查看进程号,下图  master的为主进程号
; @( I4 V0 r  f7 }ps -ef | grep nginx8 h, W) |2 }) c
#从容停止Nginx# q" t- {) |' P# O8 b
kill -QUIT 主进程号
5 M5 @+ H4 W1 o- e' b#快速停止Nginx
+ M+ `% j/ t+ b, V: Okill -TERM 主进程号
0 N1 n; h4 {' X3 ~/ v6 D! q#强制停止Nginx
  r$ P: @* v  b  _6 kpkill -9 nginx. W# b3 @  |; l0 z
#平滑重启nginx:
4 u% i0 }5 M+ dkill -HUP 主进程号5 [! e0 z" B0 v" B9 ~
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

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

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

1、启动:
$ t9 q2 n6 c( p' F4 x. b
! v8 g6 z; N3 AC:\server\nginx-1.0.2>start nginx/ ^! L6 p4 `+ k& T4 f

, b& M: Z/ d0 g1 e! C& o* _8 }5 z! o4 q3 Y/ K& w+ d
9 o: j2 P4 p. t# y
C:\server\nginx-1.0.2>nginx.exe$ [5 ^2 B8 y7 o# b

) p9 T1 q- J6 N. ?, w7 a8 x1 `注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
( P" ^! \2 [6 [9 ?" f; Y" V. e# B2 y6 b: b
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
, z# y; J0 t4 p/ r3 o& C* \, @$ ~8 ^3 Y+ q# M" \/ R" G' C
2、停止:6 F% E3 P: I2 W; z  e/ Z$ `
; N9 L- V: ?* D0 ~/ F" A% |! n
C:\server\nginx-1.0.2>nginx.exe -s stop
& k+ y" X" b  F0 [$ R! N
( z$ y  p& o  o' N/ F
! J1 j6 s+ m2 Y0 j9 I/ K! }. l9 m3 e3 f
C:\server\nginx-1.0.2>nginx.exe -s quit- `) n  ?2 o9 s9 k/ T1 g8 L
* g5 U$ `" `! E3 J1 |6 X% D
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
7 t+ r: D/ ]9 a! v5 E5 ~
' @6 e$ p6 o2 `. K: s  q执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
% P, R& x& s. @
' H& t, P) V/ |* F  T" [还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
  k! [. n/ x+ ^( O
# ]* e$ q3 J( L& J( Htaskkill /f /im nginx.exe > null 杀死nginx进程
. ~& f- N# g+ r, T* A: |7 A3 G( ^1 b) T% O: F, `' b3 M
3、重新载入Nginx:
* f" s/ Y/ O: Y4 D2 p2 V4 I; O! ]  o( W, J- n
C:\server\nginx-1.0.2>nginx.exe -s reload
8 n8 n- [  {' `/ ^1 s$ b$ c; z+ I  z5 b! f2 I9 M/ I
当配置信息修改,需要重新载入这些配置时使用此命令。1 b$ M8 J+ E; ^# o1 }' m; @

0 `+ `, r! B( k0 Z4、重新打开日志文件:
! L1 R; c1 w* V' L- p4 G2 _( v/ `
C:\server\nginx-1.0.2>nginx.exe -s reopen
8 n" [% D+ ]" A8 O- q  M
; P5 S5 U) Z) p5、查看Nginx版本:- d/ Z) E9 r; p! i' `7 H. d
6 o9 O) l: l( S$ Z" B4 R) [
C:\server\nginx-1.0.2>nginx -v8 b3 |/ P/ F# O' f- B" I! y

) o9 P) M0 S3 l' Bnginx: nginx version: nginx/1.0.2
- e3 R$ _) i# m
# B  K& m( w& I0 X3 K8 H, j# i; A2 w7 G# h' \0 B& j

5 {, S( g- L( k* c: N3 `  uC:\server\nginx-1.0.2>nginx -V
) @& i$ A8 d1 |- C5 p! q
- @; R6 I& E; q0 Dnginx: nginx version: nginx/1.0.2
4 r5 Q0 U: x6 C0 a% Y5 T8 S% T1 h8 g: ^( j0 l7 c
nginx: TLS SNI support enabled! e% x: F: S) b2 x
& |" |+ N4 @7 |, L+ d6 p
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/ V0 @3 M" v5 z9 g9 V

# w! J# i7 t! Y, u; j0 d注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
8 z0 o$ J' U0 z- d- O
" V3 `. N2 _  o' w
: r. C1 N3 \# S! M8 q7 f! t6、测试或载入指定配置文件:# s+ [0 ?( Z9 Q: q) t7 d4 i
) Q) ]0 Y! f1 l' H3 j
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
) P$ e, c$ [( N+ v% D0 G
% W& g3 J$ M) q/ L4 S" LC:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf0 W( @3 ?! e! e1 j/ h0 G
( P& V0 r" ?; G% l. {
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok) y3 \% z3 e0 Q6 P$ Z

! `5 e! a8 g) @: snginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful& Z7 r; J" z" f  j2 ?- ^

1 s: f- p) N3 i) B1 B载入指定配置文件
& h0 W4 t1 Y! [4 \7 s% B: V
1 j5 `/ a8 w( s% ?! A* l: w/ FC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
) K) M7 t  x7 V: e# ^; C5 e1 I; K( q/ J. x
欢迎定制:13928122889
回复

使用道具 举报

581

主题

706

回帖

4842

积分

管理员

积分
4842
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程/ \( Q" W% X' o6 X
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
) x1 q$ L' R1 o' Y$ r start nginx : 启动nginx
+ w' f! B% b6 ]" r7 i% m8 c- C nginx -s reload  :修改配置后重新加载生效0 Z9 l5 A) {0 }: @; A. O
nginx -s reopen  :重新打开日志文件
  t8 i/ g3 g6 q& C- ]( S nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确& z+ ?+ P7 q. H- X, c
       关闭nginx:) {- U- j" Q) o+ L8 r+ k; |
nginx -s stop  :快速停止nginx! P/ s& p) R' P3 x  y$ w
nginx -s quit  :完整有序的停止nginx
# J7 d. Y0 x( D$ n! H 如果遇到报错:
6 p; \- i- W7 e. C bash: nginx: command not found/ ?9 ]- e7 @  _8 s9 Q, d0 o6 i
有可能是你再linux命令行环境下运行了windows命令,0 m$ K0 a' f/ X. m
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload, J$ m5 q  \9 x: J, u0 Z" K; p
或者 用windows系统自带命令行工具运行
欢迎定制:13928122889
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-2 06:52 , Processed in 0.013789 second(s), 4 queries , Redis On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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