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

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

[复制链接]

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx0 Q+ j  F1 X$ }, Z! K
进入nginx安装目录执行
- [9 {) `# w4 K+ Y- q( P6 _$ ~0 r* a. [! U
./sbin/nginx -c ./conf/nginx.conf
3 d( z6 I1 ~- L/ P. q/ i7 V+ p 2.验证nginx配置文件是否正确- w# d6 c: F1 N7 K
  h+ O2 l9 z- K+ F0 x
方法1. 进入nginx安装目录sbin下,输入命令+ |1 z" O7 r7 s4 q6 o2 P# S
  |- f: k5 I& O+ a
./nginx -t' G5 |' d- k( w# C
回显test is successful说明配置正确, O  Z0 \2 p3 g/ o7 x/ y5 D0 |# m* l

0 d) r3 ^) ?5 j0 i+ J# v% D9 E$ V方法2. 在启动nginx命令 -c 前加 -t
2 h4 O& i; D' i+ d
0 l* g+ `# v6 c, o+ B./sbin/nginx -t -c ./conf/nginx.conf
& \8 u/ p" r8 C+ A/ c5 u! K3.停止nginx) U/ z5 a2 G5 q) h
方法1:" v+ l2 V! N) z8 Q

" }8 u. X& e, `4 C强制停止:
/ s( G( \9 b  H) O, f3 `9 r2 n5 D4 d2 t5 L( S8 L% B/ O" [
./sbin/nginx -s stop3 r8 z2 l" Z; ]4 Z: v, C' Y6 I1 P: q
处理完请求后停止:5 z# Q  N6 L4 P; }$ q& H- y* I/ r

  j( y  V. N  T6 M1 A" r3 C/ S* C./sbin/nginx -s quit& b) j$ y3 i9 D1 |) m0 X7 s2 D
方法2:2 p/ G) N  b  u5 X' _
& c3 D  \4 F. V; E; P9 Q
ps -ef|grep nginx
7 L; E. J- x( a7 z6 r5 V找到对应的nginx进程号3 [( C8 H# F7 h0 H& Y1 \

0 g* O3 C+ j; F( w, W正常停止:
8 \9 c' ^- T" A
, s2 a) }7 p# a: j" k. u/ r' Xkill -15 进程号; z9 n. `4 X0 z; {2 _
强制停止:
# [* w- U3 F9 G, }' `0 t, R9 M
, y1 D# k/ H1 Jkill -9 进程号) s% C# n. {& O6 T  z: k
4.重启新加载nginx配置文件. M  ]; S2 K8 r+ x7 s: D$ @: l8 x
方法1. 进入nginx安装目录执行, ]% e7 W  M& |9 F

+ H& J8 L, w& U8 D( _) `4 L& S# {./sbin/nginx -s reload
" F" {6 J( \  s: V5.重启nginx服务
# N/ f& f  V6 g/ H' K5 k- @' G方法1. 进入nginx安装目录执行
( C" p, n' Z4 A" L9 R( x  w- Q5 E  ~: ?  k9 V5 a% [+ N4 D
./sbin/nginx -s reopen# s% B$ \* W  y1 |0 i) c1 C8 z
方法2.查找当前nginx的PID进程号,并kill6 T. E* q' I" x+ F0 o0 A
0 p6 m) u5 {1 F8 n7 |6 d
ps -ef|grep nginx
* R: E4 e4 d* T6 X+ Z4 T, W7 Y. q找到对应的nginx进程号,进行
) b: p, n+ z$ ?2 n- F) d+ o8 E, _! l1 ^9 ]
kill -HUP 进程号$ {$ `9 V; g- k* l- b& y% s: }- S

  v% N, m* \* [- I' A  P
! u. Q* {+ D; T3 [kill -1 进程号
( j9 n# ?: s- ^% b  E7 X+ Q实现重启nginx服务
8 ^' b5 W7 B0 K7 H6 k4 B/ d' J4 e( B  _) j
6.查看nginx版本信息: y6 M/ V+ y2 u$ J1 w
1).只显示版本信息
/ q) @8 o5 G8 _! n! g  n2 Y1 z/ b1 y# L' H1 t2 A
进入nginx安装目录执行
) I6 w, I& V5 `$ U& s* L1 `1 q) \: G8 u+ O
./sbin/nginx -v
: t% h6 z% a' R6 v4 \ 2)显示版本信息和配置信息6 }+ d" j# s( y% e7 ^& j
5 |3 O. W- n9 \8 ^* p$ f5 ]: t3 k
进入nginx安装目录执行( A! Q$ D6 Q# l9 Q1 ]
/ p- S; |- ^% a
./sbin/nginx -v
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
/ ?* E: g. V; x6 ^' {4 U( [#1.直接启动
* h- \; X& ~2 N1 e#进入nginx目录,执行启动命令9 B, d" E6 x! J0 f+ ]
cd /usr/local/nginx/sbin( Q; A3 m" u4 b0 h( S% e
./nginx* Z2 E; J4 j+ n* ?
# 或者直接
5 e* t/ m* C2 v2 I/usr/local/nginx/sbin/nginx+ G* ?) N+ T8 c$ m* o9 x4 o
#2.指定配置文件方式启动; [9 x. ^' S5 _# e4 r) b8 g- Z
#进入nginx目录,执行启动命令
2 h" p3 Z# P% {5 Ycd /usr/local/nginx/sbin
. T& f$ [* g8 e$ }) e./nginx -c /usr/local/nginx/conf/nginx.conf
% }% ]+ U+ R8 R7 W& A, H9 g2 r' p#或者; P; F: x6 b) H/ w* }+ l. |# O
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
& d9 z, Y2 B3 m# ?" ~  h% P
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
: T# y2 G8 X3 O; ?. N$ E' ]: Q" V8 t3 |
#进入nginx目录' `8 j, i' H' a5 ~" d3 }, S
cd /usr/local/nginx/sbin3 j" \% N5 u/ N) x. }
#检查配置文件是否有语法操作+ p& e8 s! z" _8 `/ t0 A8 y" f
./nginx -t1 R- l$ W. E5 o. H/ D
# 或者显示指定配置文件
. k5 ]' g5 Z# Z1 F, e./nginx -t -c /usr/local/nginx/conf/nginx.conf# C/ o+ g& w! e9 W
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置$ x& R4 E* q3 ]. u( B

- ^+ ]9 G9 s3 z5 Y" Z#进入nginx目录
1 L# w# ]/ |+ {cd /usr/local/nginx/sbin5 p" Q" C; w2 |3 N9 ~1 m, {
#执行重载命令
+ r! s+ h) c# v  s1 Z$ U( K./nginx -s reload
' V3 o9 b9 u( p" J3 A0 y% z/ L* y6 @9 \* b( H' C
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
+ P" D. X& R; a- w6 Mnginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
3 d& V# c5 [5 l* V6 Q7 W( F; k; h* }/ T7 b" o0 r- U9 }  _
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)0 v. O$ x" \( h. ]& A
Nginx启动新的worker进程,采用新的配置文件
7 U: s4 U: T9 D7 B5 cNginx将新的请求分配新的worker进程% `" ]& V8 ~. A0 J6 T  q; s- p
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
/ g6 c. Z  b/ p3 F! n4 _+ ~重复上面过程,知道全部旧的worker进程都被关闭掉。0 c/ K# m$ M' E" i' U8 v, `
所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
+ e2 r. x) b: I/ Z; L# M7 b8 N# i* U( D
#进入nginx目录# s- }! k3 A- l' J
cd /usr/local/nginx/sbin( w; x3 u7 i3 v/ L" H
# 快速停止nginx
! W9 w* M& l) u3 k; X* E# e% \./nginx -s stop& x1 f$ Z* \8 ~* L# [
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx! b& V3 F6 ?8 N% {1 I: R% ?6 h1 l
./nginx -s quit/ P8 B1 Z+ Q. o
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件
, G0 @+ J1 f: K5 w, Z7 t/ r' l$ ]
#进入nginx目录
* M: c. k# E3 x+ i* xcd /usr/local/nginx/sbin
5 F( T, V3 F) i4 z: d! ]6 C# 重新打开日志文件( j3 G) b$ t8 S- b/ w
./nginx -s reopen
, \$ E2 N& a1 f! n( c: \
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
9 b+ A& U  V! f5 J: x' f$ s# r当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。3 e! d5 _  n5 H) B' F( N# ^* I
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
( e/ [+ e1 R' T6 }6 a5 ?6 B8 j+ ]一般我们需要两步:/ x8 v: m+ d; {" x" N# z# U, @. N
( [# x5 \9 b. |" Y7 t
移走文件并重命名
5 h2 @* x5 S5 y" j. d; e+ z利用 nginx 的 reopen 功能,完成新日志文件的生成。
5 Z' }' L% E* E参考地址,感谢博主分享
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
  X2 Z  u* N; c+ N( }% e8 b7 u% u! m+ @# Q
# 查看进程号,下图  master的为主进程号" q7 \. z- t8 n) q5 o
ps -ef | grep nginx
( {$ E0 q- H. \0 P) z#从容停止Nginx
& I7 Z. L- Y8 j3 gkill -QUIT 主进程号
$ ^2 K; Y- Y8 L& b1 A7 p#快速停止Nginx  r& C. L' B% a
kill -TERM 主进程号
$ f- W/ r" p7 N$ w7 n# }* m#强制停止Nginx: @! a# I% y7 Z1 S8 i4 L
pkill -9 nginx) ?* J  P" A  T2 d+ z+ y3 s
#平滑重启nginx:
0 X( B% m3 v8 @7 f0 m/ vkill -HUP 主进程号
/ E2 F* e* |& i2 [3 I) s$ \
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

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

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

1、启动:
+ i2 l8 F& l. Q2 h0 p) y; L: G: @# i0 @, b
C:\server\nginx-1.0.2>start nginx+ S) q: B" c+ |

) l+ x8 U: J  w4 _6 I1 F5 I  K+ i% e: A) w% ~5 \0 ~! n8 A/ n

4 V: e  \4 S. d2 G6 Q- ^C:\server\nginx-1.0.2>nginx.exe
. m1 U) E, q# t! J
1 D9 Y2 h. n, j3 }注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
) u* E4 k9 E, X% i" ]* l
0 o$ J: g2 U  [  ?如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
+ v$ ~" |, M' s  o& l! Y
% A' G, `' o) v0 v) K; V2、停止:: z3 c7 K$ |( t# v; L- ~; Y; N

% J. v% n- a! i, O4 K- C* U  HC:\server\nginx-1.0.2>nginx.exe -s stop6 c7 r- c$ i; v+ `8 ?0 O) J
' v  d7 P/ e" ~  b5 Y/ i0 I; A

; u8 q  A& v  x4 F$ P( b
' P; y/ ?: W1 c- F% SC:\server\nginx-1.0.2>nginx.exe -s quit9 D% }/ z4 m  F% t
" B" d6 V* }* Z7 C/ X
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
# f/ k6 a0 y8 ~% o3 V8 M+ C0 w: Z9 K8 Y
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe9 C' C! Y5 O, Y7 N3 Q
$ T& `2 g# i* M9 a* S' F2 s
还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用; _3 }- o- O' o: d( h* N1 j
% |' I- @6 y6 i8 D& w& h$ j
taskkill /f /im nginx.exe > null 杀死nginx进程8 ?+ b; B  c+ n0 _5 g
; X6 R7 j0 p' m3 l% T; @
3、重新载入Nginx:' c8 X' a$ U  R+ J3 n1 ?; h" `) @

4 ]& a) y  L; ~2 l" V6 UC:\server\nginx-1.0.2>nginx.exe -s reload( N9 z5 g( ~9 v2 _
- v5 z+ i& H% ?
当配置信息修改,需要重新载入这些配置时使用此命令。
3 F" m0 J) u  M
; q; a  R! @( ^! z5 a  ^4、重新打开日志文件:# A7 P: }0 `! y# c) F$ o4 `! m

+ G# {3 W0 u  q  WC:\server\nginx-1.0.2>nginx.exe -s reopen
8 X2 R7 l+ r. {; Z* W
3 A0 Q+ K" `* H" E2 ]' Q5、查看Nginx版本:
& N. l5 r% d7 D- }1 {6 E4 g0 ^+ S4 U: m( H6 K0 f
C:\server\nginx-1.0.2>nginx -v. H, }  z9 \0 J: F1 O
7 U6 o3 {% L9 G) O4 `
nginx: nginx version: nginx/1.0.25 |0 p. W5 O+ ?1 w. H

5 N0 Z5 w4 Z& B" ?
2 |' Z5 Z  l+ i  P, w0 |
$ C/ B. Z( x- C: q  C- v6 yC:\server\nginx-1.0.2>nginx -V6 U5 n  P/ M* b4 B6 D
4 _; o: I3 B. V  f+ b
nginx: nginx version: nginx/1.0.27 t; B* J, C8 q
2 r0 A; ?. l& m- T
nginx: TLS SNI support enabled3 ~# t/ i% O. x

2 c9 o. U* j1 D5 e# M2 s- unginx: 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_module7 _5 H; t7 Q& _1 [+ i" Z  M% K
2 ~: R' e  [: t
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
& X- S* [1 j/ D# X$ @6 c
( S3 h# F; A8 q" q( a4 v8 A& Z- a
6 y6 w' i+ n* ~2 N$ f9 e$ f3 M6、测试或载入指定配置文件:7 q5 f3 e5 z$ S4 w( W
% E4 j- J1 ^! h$ H4 m/ b$ ~
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
" P) m/ H& g( N  n2 u) X% Y: \0 H3 S3 n0 n/ N, w/ s! }
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
; a! O' a# S/ e3 B$ P1 X2 J- M, @) D) R( |
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
! y9 I& p% Z: W9 }. @4 I9 m7 r2 s8 Q$ s" J* K
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
& ?" y" {4 o$ d/ L: v) L4 d& j
  A9 J& p  y; S6 c( h! ?4 J0 q% P# R载入指定配置文件2 J1 K+ g& R( _& ^! s2 r2 K

9 k+ h- V: Q( V6 mC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
/ I+ S, B) n8 E* N) I  u; f9 y, X& E+ f6 Y2 Q8 x
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
$ F7 C$ C4 X4 y5 C 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
0 X/ Z" C" Y5 e/ ]  l  ^* p start nginx : 启动nginx" b6 Z! L& }% S  n5 W+ k; B2 c
nginx -s reload  :修改配置后重新加载生效
1 [# W: V6 U/ K2 @* E) j nginx -s reopen  :重新打开日志文件
; P" D$ O- Z9 z+ S7 H/ D nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
9 C& A( }" T* m. l, \" G       关闭nginx:
/ e4 f+ h" p5 V. w% ?, j! O nginx -s stop  :快速停止nginx
# d' J) E) K) ?- Y! \( p nginx -s quit  :完整有序的停止nginx
5 G* I. P7 O' J5 S* N, K* p& D 如果遇到报错:& F/ M! d! ~4 a+ ^
bash: nginx: command not found6 X: [( E+ U1 U/ G6 B- \
有可能是你再linux命令行环境下运行了windows命令,
- a! t& g/ H4 |  d 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload( U" R8 C. Y* B0 Y3 J
或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 09:56 , Processed in 0.079862 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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