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

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

[复制链接]

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx
% z( }" K: ?  S. G& h6 e2 D, ?进入nginx安装目录执行+ r* \3 n8 K) i/ p
6 q2 ]' C4 R* ^( q8 [$ R
./sbin/nginx -c ./conf/nginx.conf
, v( ]9 k3 y. W% p 2.验证nginx配置文件是否正确6 {9 a* W: b4 w1 P5 u' U8 k/ X; W

9 _. k3 m+ G+ V/ G8 D8 _: e0 r方法1. 进入nginx安装目录sbin下,输入命令  }' G: d* F8 A. |

4 O; W8 Z! B6 }% q$ o  b, t./nginx -t0 @9 v7 F) o3 g. O# _/ @
回显test is successful说明配置正确; Q5 l# U" d+ j4 G( p
% j6 y8 A* i0 E7 }/ y1 R- \4 v; ~
方法2. 在启动nginx命令 -c 前加 -t1 w9 @8 G' g  w

/ P( S% h: M- U./sbin/nginx -t -c ./conf/nginx.conf
! ^  F9 `8 @/ S3.停止nginx
. i. _) w& ~! p4 a8 y. g方法1:5 \& g+ f  Z: n6 d5 ]; I

3 g; `( w# m' }$ [3 c# g强制停止:1 h& b* r4 A# ~) R7 x8 E
; H1 F8 }% m0 Q3 w& I
./sbin/nginx -s stop
$ d; T* u6 T; L& k* W处理完请求后停止:/ ?$ W  r! C2 M1 D/ l

2 H: c; B5 i: L8 D- S" V( ~% V./sbin/nginx -s quit
" L3 T" J, \# I& m5 W  S; y* S. l# ?方法2:
0 f( m" f) h1 @) e1 Y. E3 c, U/ L% i+ s8 t
ps -ef|grep nginx
1 N% F' Z3 \, g2 q7 X3 Q找到对应的nginx进程号
! H* j- H$ T5 _
( |! f8 K+ _- f1 X6 |$ [, t4 K正常停止:
; @% Z) g/ L) \, ?2 L
. [- g' p$ D. V5 akill -15 进程号
8 d. n/ L4 m" {9 \. t$ V强制停止:
7 F' Q9 @9 R2 O, {0 P/ h0 Y
* X" u7 j4 [: R- ukill -9 进程号
5 ^5 K$ G  z2 \& s; @* A  l$ Y: D4.重启新加载nginx配置文件
* o0 k3 e1 n5 R* m+ Y- C5 A方法1. 进入nginx安装目录执行5 N4 C  H6 s/ a3 @- P2 S
- A0 k( _( m4 A; v$ W( s$ _! M2 A
./sbin/nginx -s reload
2 w3 D4 Z" R  r6 i- _7 P+ ~5.重启nginx服务
6 X) b+ g& T8 `0 [5 h  N方法1. 进入nginx安装目录执行
+ p9 Y1 J; i- y$ D1 t
1 V! W7 e$ L! K; p9 }0 L0 C./sbin/nginx -s reopen
# Y1 g& M2 W8 {9 S 方法2.查找当前nginx的PID进程号,并kill$ n5 Q. u% Z0 t) y8 P4 v

$ y& P, R& w6 K- _$ q/ W7 ?ps -ef|grep nginx: c1 E! ?: T  E2 |5 Q8 W
找到对应的nginx进程号,进行
5 y: q( ^% C6 e1 ~! s2 S7 z, l* w! [- C7 h; {
kill -HUP 进程号
$ A' Y2 ~6 \/ d* ]
. Y% V2 q2 _5 w5 ?7 u& v
" H  s$ R/ ]. y+ e5 pkill -1 进程号
3 c7 Q; x. b3 `3 U* U实现重启nginx服务+ |! ?/ O/ L3 K5 w, a
, ^+ }9 f2 [8 M1 O6 b
6.查看nginx版本信息
/ O' d, \; v' g* P1).只显示版本信息! n' T3 _+ H/ V2 `5 X$ V

' i& R; W( G7 C0 W进入nginx安装目录执行
& R: p  |0 f5 X( B4 c) ?* w6 C% U# K3 g& E/ X- Q" d1 L! g
./sbin/nginx -v
$ V. `3 {; W# z6 ^" | 2)显示版本信息和配置信息
  G' U( W# a) T3 w
) ]+ s0 W' t+ I进入nginx安装目录执行
& ~" Q3 i$ C( m+ E9 N0 Y* b# X# q
* V1 |" j3 _/ H. ^: z7 l3 T./sbin/nginx -v
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
" P& B. k2 W. g#1.直接启动. T: R) l+ g5 X. z8 @1 ~- C( m
#进入nginx目录,执行启动命令' A1 H! \+ x; f2 x( T) D
cd /usr/local/nginx/sbin5 P8 C% Y# ?9 p) R2 X8 Q( B
./nginx: e8 g) Q; D1 I+ Q/ k
# 或者直接
" p. ^& y$ u; i8 [/usr/local/nginx/sbin/nginx
. B* y  p. @) ^( j8 U# e#2.指定配置文件方式启动- X, V! ^' g9 d1 `: P1 Y
#进入nginx目录,执行启动命令
# _( P; |# H0 O" }% Z9 d4 Fcd /usr/local/nginx/sbin
) q: ^# f* R  @, ?8 [- T' G7 D./nginx -c /usr/local/nginx/conf/nginx.conf
' r8 q! J6 Z4 ?2 j+ c#或者$ t' e6 D' v  Y2 N; n; ^7 Q* _! j
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf6 ~& P. z- {7 Q
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
$ B; |- y2 h% X; R- t, a
, ^- K/ X+ @" h. L) l#进入nginx目录) `! s0 b4 z5 A3 I
cd /usr/local/nginx/sbin3 @3 f9 B  u' v8 E) ^6 P3 A" E
#检查配置文件是否有语法操作- r( X7 p  V: @" F" }0 g
./nginx -t
9 ^- N+ k# v) f4 f5 A0 f# 或者显示指定配置文件
( z  z0 j# o8 Z# [. d3 r5 \./nginx -t -c /usr/local/nginx/conf/nginx.conf
( ~0 b- K7 x- `) q! e' h
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
7 W" y+ N) a$ ~* `. z" T! ?& M1 j  {' `4 w
#进入nginx目录2 R, M+ `& j7 G& H3 \
cd /usr/local/nginx/sbin
* {" @$ `3 ^5 k7 `7 |; @#执行重载命令0 R0 [% j/ m$ T% `: j
./nginx -s reload7 s3 }& G2 F. p. O

9 d. f" z  M: a6 e0 `  V- A. inginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
) B1 z; b/ w$ O, nnginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件( V+ `: ~1 }) H5 J: T
) _& C+ y" D! \5 ?8 x% Q0 S
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响). [( X3 Z) n4 m8 B) E8 X/ y+ q9 H
Nginx启动新的worker进程,采用新的配置文件& m' P8 j6 G& L) @6 Q' z4 E! M5 m
Nginx将新的请求分配新的worker进程
; k; `' w* Q* W" X5 _$ K+ XNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
/ j! s1 P5 c; E; G' R1 w重复上面过程,知道全部旧的worker进程都被关闭掉。
6 v" l9 z8 }6 ?+ N所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
* U. v- C  P% _9 B( t
1 Q* {2 S% ?1 s& V: r#进入nginx目录6 `+ V$ e- M, @4 w6 y" ]
cd /usr/local/nginx/sbin/ o$ |6 Y3 h* m7 @9 c
# 快速停止nginx
: \2 ]0 Y- `, M3 @: w./nginx -s stop
1 g5 H$ c+ J+ E) v/ X! Z' W4 f# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
3 @' k% e( B5 g" y" }& S* V; W' F./nginx -s quit" P6 u# l5 M, x0 {
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件& ]) `" ?$ b$ l/ y. V  w; Z$ p( {( y9 ?

: ^) w& l5 T6 L" f#进入nginx目录
. T2 m: o- j& t# I- D6 a, g! tcd /usr/local/nginx/sbin
% s/ b5 B6 T: u; U, ^# 重新打开日志文件! \2 t/ d# O7 ^! c" y
./nginx -s reopen6 m' @4 E$ F+ d/ y
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。% v& Z' _, A9 ?; e! {' T0 I1 p' _
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
% B6 w+ S  U3 l+ n, y& D但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
! \+ e& b8 _3 j. l' o+ \& R一般我们需要两步:( m8 n4 M; G  W+ \, C% }

5 G1 d2 ?7 T6 N' c移走文件并重命名
$ Z- M9 h0 L  |4 s' B) O' k利用 nginx 的 reopen 功能,完成新日志文件的生成。
. D' k& h" Z3 W% s9 a& _2 q参考地址,感谢博主分享
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
# Z2 s4 A- }7 i; y% s/ m
6 J5 j$ s1 H% n# B) K! n4 ?5 t' q# 查看进程号,下图  master的为主进程号, K1 B7 U0 R3 ?. ]6 r2 i
ps -ef | grep nginx+ M0 c, B3 h9 T) q, x) p) o
#从容停止Nginx
- o  s8 |( t: M+ N! h7 D2 D; p3 c* M4 {kill -QUIT 主进程号
; Y& \6 r6 Z9 a4 g5 U0 P#快速停止Nginx+ g% _0 [1 p6 g* B0 W7 m/ G! E7 Z
kill -TERM 主进程号
" ]' c! ^7 {3 w2 y. B& z#强制停止Nginx& y0 Y7 t- p$ O
pkill -9 nginx  ^8 a( o# x. K* Q" B0 q
#平滑重启nginx:
' @7 C( [& S1 j$ ]kill -HUP 主进程号
# C! s. H' s# L3 V0 ~
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

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

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

1、启动:; ?$ L+ s. M9 s9 n; A9 }4 B* @

: @: A5 Q' W  n; q9 }  M) jC:\server\nginx-1.0.2>start nginx2 i4 q/ f  d' V& K
0 h/ g# g1 R5 X& H! k/ W) o
8 @3 _' T0 S8 D2 K6 L
+ K: t+ P# c  E7 {" [* X
C:\server\nginx-1.0.2>nginx.exe
- H, q' _8 R" x* m9 y6 i( a! k) X, J+ D, T- @# t
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
7 D) P# R$ e9 d, i6 y! H: [
/ y& `6 q7 F, C% {" ]0 B6 l如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
# ?! z( Q  S$ G0 `4 M; ]$ W" ~) G/ g9 Y4 A  Z7 d
2、停止:
* d: B  s$ H3 M) o) V4 a, v- G4 H- j2 [7 a9 H) ]
C:\server\nginx-1.0.2>nginx.exe -s stop4 q2 ~) Y2 k# @9 b1 s& z
) X" e/ p0 `/ k9 \

2 f5 B% b1 N8 o0 ]7 L- S8 a
( d; t  r5 k# Y# x+ A" dC:\server\nginx-1.0.2>nginx.exe -s quit' e) ]+ `* p: w' b$ p
6 @. W7 A5 w9 g. g" m
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。3 R& c4 F' ^3 c% g+ B% _* ^
4 f5 H  `0 U  {
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe. b5 |' Z4 X8 @, M! f6 I- X
8 y/ `3 Y. f+ C  G* R8 y8 ]4 I- r
还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
9 @7 @" D6 ?# g  h1 Z' c9 i: I! g5 V6 V8 G$ J8 ?
taskkill /f /im nginx.exe > null 杀死nginx进程
+ L0 f/ @" \) ^6 f9 x9 z) A; E: j- k# x* V# e2 {) ^
3、重新载入Nginx:( s' O! d1 k9 R! G1 r2 t

, ^& x" D: }) J& F$ F2 M  tC:\server\nginx-1.0.2>nginx.exe -s reload( `0 \; V" T8 ]& t4 g! C- h3 x

/ r8 F& c( w. h当配置信息修改,需要重新载入这些配置时使用此命令。9 ?5 O6 @& @6 ^6 H+ j( V7 \
; F5 z  \% d3 V0 g& }$ G9 k) m
4、重新打开日志文件:
+ b1 ^# y/ F( h6 i+ Z
3 `; d% e7 g' {8 T/ x/ L# \C:\server\nginx-1.0.2>nginx.exe -s reopen# h2 T( I: T1 D, \# [7 H

! X" Y3 W# H, _5、查看Nginx版本:
" D: v* R- p/ O8 V8 v0 G2 H2 S5 d! z: O4 O( K- c) O
C:\server\nginx-1.0.2>nginx -v
- F1 r1 D4 @4 s, s4 a- B3 @+ x0 f1 b9 f& j0 ?$ W0 Q* T* t0 E7 d* J
nginx: nginx version: nginx/1.0.2! J; Y& `  R5 J* w6 i- w. m
6 t0 z7 W; g* x+ v
( w' O: v# ?: D2 X' O
" V+ F4 j' k0 r, x
C:\server\nginx-1.0.2>nginx -V) t- I' z8 h, i
9 a+ y. P/ J5 c5 T& E& }+ y
nginx: nginx version: nginx/1.0.2
7 T! s: @  N3 ^% p' J7 p( l, U" {9 p" A& M: Y/ G4 y# X
nginx: TLS SNI support enabled8 S4 @4 i4 B: c9 }6 s5 ]

+ s& \7 `  ~! ?% Jnginx: 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( ]& [  `7 d% C
9 U: s5 N& P; D1 V
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。/ R% {1 N/ j9 Q. s1 I
  K3 X  |) l" r6 i

% x6 J. L. {/ N3 T! s+ b6、测试或载入指定配置文件:/ P8 {9 D: Z# c: E, V6 g! B9 r' H

8 m' [- t1 n  N$ Y6 W注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
- h3 f& Q4 w2 f& B$ L& G6 Q0 M: n
% i( D$ l* e; |C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
) @. y" M& w5 c0 N+ D
# \& M- V4 I1 Q, mnginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok: `, {8 f' ?0 {3 _

$ V$ \7 _1 O) g7 ^/ \- Anginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
4 `2 N6 \5 u& G3 ^3 \% s+ I  s: A8 ]' _
载入指定配置文件4 v3 G2 q8 s% u+ T
, j7 a! c7 ~; g  s/ o
C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf: j9 t$ O/ T; `. \( S7 [9 b

# G; Z7 T% \0 z8 h! H0 h3 t
回复

使用道具 举报

320

主题

485

回帖

3140

积分

管理员

积分
3140
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
% }3 H  V- i( \0 A5 F2 U 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
0 T$ K) t% ~8 j3 R, w( j$ d start nginx : 启动nginx9 i' ]/ h2 |$ y' T& a8 ^8 I; y
nginx -s reload  :修改配置后重新加载生效
4 w3 _. |; X. m; d7 P7 A- S nginx -s reopen  :重新打开日志文件
2 y% G: k( _8 v0 e4 p, t$ A nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确8 u* D" h5 U5 u& s6 ~+ e
       关闭nginx:/ N' Z) W+ R1 j# k
nginx -s stop  :快速停止nginx
! p; b5 w) p4 X; h9 ] nginx -s quit  :完整有序的停止nginx" Y- L8 D" W! N" A2 _, {+ L0 l
如果遇到报错:8 m& p: q/ j9 h. G# V9 d6 K7 i
bash: nginx: command not found
. F. l. w+ G( G& C$ C 有可能是你再linux命令行环境下运行了windows命令,
& w# u& D% }$ ^3 w* x  V# ` 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
/ A! b0 v, p$ ? 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-8-19 13:55 , Processed in 0.097906 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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