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

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

[复制链接]

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx) `# p8 i6 p9 K# O
进入nginx安装目录执行! f6 ?3 z3 t0 _# Y! n: H/ U. k
+ l8 Y& o" e1 _/ {1 Q+ U
./sbin/nginx -c ./conf/nginx.conf2 C+ x/ R! y% T) w0 T! x5 o7 w
2.验证nginx配置文件是否正确4 \. P( a1 R, d5 U' p, x/ l

6 s) [6 |6 K- u" W- z0 M方法1. 进入nginx安装目录sbin下,输入命令- E7 Y; ^+ d, ^8 f% }  g$ d* H

" ~! i4 k) P# V* F+ P" H( q./nginx -t
4 M/ e3 ^' x2 D& Y! s回显test is successful说明配置正确, G* g* F8 I% ^9 t9 v8 x

9 V/ p' q3 @( A7 a! ^7 C2 P方法2. 在启动nginx命令 -c 前加 -t
" n( Q& _" M8 J& p+ c: \) x
, L( ~! j0 A  [% p, R7 M3 w5 x./sbin/nginx -t -c ./conf/nginx.conf
7 E7 @3 p$ a! E# R" p, @! a3.停止nginx
7 O- p( u8 o$ k6 A5 E6 T& [方法1:( r( K3 V! O  D# t

  E$ O* Y' }: ~6 m6 N4 _& P$ ?强制停止:
6 K; x2 |8 i% C  j1 K/ }( ~6 Q& b, A- w2 \
./sbin/nginx -s stop
7 g/ w. W0 C( [3 `0 l1 |处理完请求后停止:
8 O# I! `0 [: t+ m  e, \0 f, M
' D2 c1 J- x' C3 @" O./sbin/nginx -s quit$ m8 v7 w  @$ b0 z- D* O0 S
方法2:
" b8 N3 A) f" }! n# N8 u9 ]7 F+ C' d, Y0 m. k, W& V* E1 A4 L1 E
ps -ef|grep nginx* f- B# y: D, E
找到对应的nginx进程号
3 y( s2 S6 N$ i2 l5 |: {8 ?! r) Y  }
+ h( W- G0 `5 i9 J' s正常停止:* W. C. N* a! ]' o/ ]
! Q- T" P( ^6 V3 C! s$ u% j
kill -15 进程号
2 G; n5 L9 j# `% O- e7 R强制停止:
! W7 m; I' c0 n4 J
. K* X+ b% S- Q3 ^3 skill -9 进程号
" j" [8 I) d$ [$ K  p4 [0 ]! H4.重启新加载nginx配置文件
, E& H- ?* O+ a+ s5 @7 A5 ?6 A0 x. I方法1. 进入nginx安装目录执行& `. n% A+ Z$ {) f2 P" q

3 |2 T- q; c; G& Q/ P! v+ p( P; q./sbin/nginx -s reload
1 M; ~; O. O( o0 m* B5.重启nginx服务: F0 y0 P* ]% q7 o2 u% D
方法1. 进入nginx安装目录执行
2 z2 l9 [! z" h' z! l' C4 t! e& [; h: `/ d7 z, }! W
./sbin/nginx -s reopen
4 t' g0 H5 F+ ^6 }3 \* V$ h 方法2.查找当前nginx的PID进程号,并kill5 d& f- B, R2 Y. N
# A( ], b& N& J4 Q9 e
ps -ef|grep nginx
% |7 M3 e' c  D+ U' S, I找到对应的nginx进程号,进行
* n9 r( n& D  M- m( x4 l
( `- H9 y5 C7 i# M5 w( ]kill -HUP 进程号
8 C4 ?! v3 a2 q/ O+ W* G
1 D+ Y* ?4 o3 o2 v3 X% |( n9 C+ J. M
/ a3 p4 b: q( \* T. A( s" s- vkill -1 进程号3 j  O+ N8 r" F3 @  J
实现重启nginx服务
$ l) b$ P$ o: l6 H. h! F
% h+ K/ R. \/ } 6.查看nginx版本信息; l3 ?) i# S  n5 x: C
1).只显示版本信息+ X7 B% D3 S% B& m% u

6 @- Z5 B! q" e- U+ A. L进入nginx安装目录执行
/ k6 ?5 ^9 r: {' l. _
5 V9 S2 U8 `* h! }, V5 L5 V+ U./sbin/nginx -v& W8 l  b* O8 K- r- Q/ `! p: t
2)显示版本信息和配置信息
/ C' \1 n6 G- \
! K' W, w. w4 v2 f进入nginx安装目录执行% w# Q& p. b" ^

/ H* @3 M) o1 w+ l% m, b+ W./sbin/nginx -v
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
0 I' w. @# F$ y. q# F; K  p8 R#1.直接启动
, @/ b! i" z: l" F5 ~#进入nginx目录,执行启动命令. r6 z4 G. W. p+ _
cd /usr/local/nginx/sbin8 O" L9 U5 W  n) s4 ]
./nginx
% y" u7 T- Q9 J5 R. e- x# 或者直接8 }; l3 r" |: n6 Q. s, O7 k" p' x
/usr/local/nginx/sbin/nginx! ?' o; [7 ^' v8 ~6 T4 I
#2.指定配置文件方式启动
2 w+ {4 r& Y: W$ x#进入nginx目录,执行启动命令( d1 j; |- p$ I2 G3 i
cd /usr/local/nginx/sbin
: n- y' t5 v/ F! m5 c6 v./nginx -c /usr/local/nginx/conf/nginx.conf  |) \# q4 {; J' s. G
#或者* R0 y4 w4 m6 q- b( _
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
7 Z3 S1 y, A* H. K, ~& _
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件% j6 r. u( l- e/ |  N
. S4 J4 l* `; }2 p4 s
#进入nginx目录
2 a+ ^4 `1 a5 F& f* k) Tcd /usr/local/nginx/sbin
' e+ H8 z! [3 c/ M$ ^* _#检查配置文件是否有语法操作' q8 s6 g! P6 T1 D8 A
./nginx -t
/ V& u3 I' x/ ?5 W- z; E" ?/ n; J# 或者显示指定配置文件
% t9 T* w+ R6 p! Q, l./nginx -t -c /usr/local/nginx/conf/nginx.conf
3 O$ t& Y2 B+ R/ R. }- ^3 c/ R
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
" L; G% q0 O; T6 C7 @6 O) Q2 L* p6 d3 Z
#进入nginx目录
( ?/ f8 D# X+ B2 G8 q* mcd /usr/local/nginx/sbin( P% _  |" N, F" c4 I' c8 @
#执行重载命令
: n; z8 J( m+ y, q1 V8 ]& G: D  D./nginx -s reload2 T8 f$ d' `& V, ~" Z& @2 x8 E+ h

* p0 u# F9 d: D; m" C7 z, inginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。7 P( h( y0 A3 d, b3 N+ D" ^* H6 Y
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
5 c& A- c+ u2 i$ U+ S6 t# l( \$ y1 w. P: K
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
9 `+ l& `0 U' b. X; iNginx启动新的worker进程,采用新的配置文件. K, |! F" C" _% W- t# M
Nginx将新的请求分配新的worker进程
: ?/ ]6 I+ F1 Y9 K6 G" Y" a5 }4 DNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程6 s" J9 t$ E5 T9 _: h
重复上面过程,知道全部旧的worker进程都被关闭掉。% T) p9 f* P  n6 B# E% H. o
所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
  A9 z9 `% F1 G" H2 r; D& H1 w8 [/ K9 u! N( d/ b" ]. ]
#进入nginx目录
$ w# T. q( J  C" j) D& Acd /usr/local/nginx/sbin
, X% V# z# z2 d& n0 A; E. x" s) V# 快速停止nginx
4 c* A; l: Q" K" t2 ?./nginx -s stop
% B0 X% D. z: j% ?# t  F. E: S: w# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx2 @* \) s- v; e  ^
./nginx -s quit
! c% U0 M' F  v4 g# x
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件+ U/ ?7 E. r/ j8 i

$ Z7 D* i4 G) c7 ^* l; y#进入nginx目录. F: b) e2 z9 ]5 c  E, ?
cd /usr/local/nginx/sbin
3 E$ K/ }3 u0 z; f# 重新打开日志文件( l1 h  v' d' F1 ?0 f' \
./nginx -s reopen
2 _" I+ m8 J/ W7 q3 U7 w  l
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
. a7 p! i8 s2 L  v当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。3 o. K8 `2 v. O( J
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。) r- d# R) p; ~6 }0 ]( d2 O
一般我们需要两步:& R! z" Z  A  U& ^  U' J5 W' v
+ R3 ?7 B6 k7 \3 j+ _! X
移走文件并重命名! N7 J4 C1 w3 H6 R
利用 nginx 的 reopen 功能,完成新日志文件的生成。5 c# D* H/ H2 q8 x& I, q8 P
参考地址,感谢博主分享
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx! M# T: R- n8 ]4 {) e' X
- e2 l) y% B2 l5 o+ D/ O
# 查看进程号,下图  master的为主进程号5 G, w* `: J& n# M/ J
ps -ef | grep nginx" o  j$ E6 e+ z) B" _
#从容停止Nginx
% z/ \- n0 |& f8 Ckill -QUIT 主进程号- F+ J3 E4 d, O9 y; f
#快速停止Nginx
+ [" w0 D" @! ~/ a; i8 P2 Xkill -TERM 主进程号
, C- b  Z9 ]0 }/ G#强制停止Nginx
; m/ @; i) j5 E  B6 ~  J/ ]pkill -9 nginx
' p& j' \8 M4 v7 ^8 A2 o% [#平滑重启nginx:
; p1 V6 ]9 h) n. W! j/ Ekill -HUP 主进程号% K1 @* c: T1 D8 W
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

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

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

1、启动:
" o  C/ R$ O+ x( I/ i5 r* T8 v  N. _5 ~; z8 h# B) u$ n% {+ k
C:\server\nginx-1.0.2>start nginx7 `9 z: C. i) g" v/ j1 t
/ Z, ]) B* G7 N' n6 C% Q( G
: h. b7 z$ m7 U/ e8 f8 e; |
+ p' ^4 v, O/ C, \4 q% M) R
C:\server\nginx-1.0.2>nginx.exe% N) |  z  p' t7 m+ a5 u1 I
" i  Q2 Z3 P$ W8 k% k! }/ m) W* M- V
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
+ X$ l1 r, m- q4 g" x+ J/ x* C, p1 }
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
6 n8 d  G: ?  z' X& W# t1 u% Z
) _2 d, j  e  f& ]2 O# w2、停止:; }4 \% l. `# b: |- }) L) N
2 v, M% j/ Y& l0 T9 L, ]- h8 a- ?
C:\server\nginx-1.0.2>nginx.exe -s stop
% q' t6 u- \) H9 m" ^
- H5 e% ~/ h3 @/ w0 q) I/ C  P' S2 m! |1 J0 X# ]5 d. Q( h

# Z/ |3 {# l* C! B5 HC:\server\nginx-1.0.2>nginx.exe -s quit) f* D5 G* G9 I5 e
: b: n! _0 p" d6 M! V" H3 z; v: f5 {
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
0 J. V2 ^5 C8 B9 Z8 @
; d, h+ a) M/ o# x' E执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe9 b9 [* h' I5 i9 S1 Z

  F( ~9 i% x; P( W7 B还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用" ^  F5 D, Y3 e) ^# I: f
( p& ^4 F$ x; ^! R
taskkill /f /im nginx.exe > null 杀死nginx进程* o4 Q  N( V: N* Q: I

( L( X9 {3 Y  s) h/ Q. i3、重新载入Nginx:0 z0 t* x) e% f1 a2 i$ l: h* L: r  z! S
* j: i4 Y) o/ K
C:\server\nginx-1.0.2>nginx.exe -s reload
1 P/ U* a: X! I$ {- c% [- N$ e7 T' I% ?) W* l/ Y0 g" B" n
当配置信息修改,需要重新载入这些配置时使用此命令。) y8 E. X/ e! s% E' P
$ s: X6 `( ~; r- M- m2 V
4、重新打开日志文件:, o. }- O4 p, B3 R  K6 I+ j

( I9 f  {, F# ]7 }7 o7 \+ UC:\server\nginx-1.0.2>nginx.exe -s reopen
( t5 F! `; O* ~! A% Y6 ?0 L
& e7 G9 x+ Y4 ?6 q0 z5、查看Nginx版本:
- E. j6 f) o/ P/ q$ {0 b% c6 D
! M: H( {" S1 fC:\server\nginx-1.0.2>nginx -v
9 ~1 t4 F1 k) H- c; n6 {* a9 U, o( a
nginx: nginx version: nginx/1.0.2
, ]$ B5 i/ S  S  z& _8 d' u4 I" w7 p2 h# {" Z4 K+ L" U

2 ^- B; u7 Q+ K* ]
  ]* A8 p, G" D/ A! l2 tC:\server\nginx-1.0.2>nginx -V
+ j0 D- A& ^, a" D3 b3 `! h% R
" v! T# |; R- [1 |. Cnginx: nginx version: nginx/1.0.2+ n6 v7 T4 I( l: N0 |

! M. f7 F, l- M8 x; inginx: TLS SNI support enabled3 _9 p- T0 a, U, o1 y& Y  E
$ Q4 C$ D9 v3 `6 v# q, E
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  I% b1 \% v$ T. Z) \, K

2 E5 n( _" k* i% }' E7 u" H' X注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。% u, i& S5 W$ S, d7 K. K+ R0 W3 f

2 S- j' U' E/ o3 P2 q# p+ Z& g# d2 z3 v6 _" k4 z2 P
6、测试或载入指定配置文件:& j2 U: {* \, m4 {

& O+ w5 K* W# Q1 z注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
" k% W1 K1 p& D6 h
/ ]1 d8 q3 s5 S! h. T2 MC:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf" ^# ~; C5 x% j. a8 S# X1 H
! k& c- ~# P9 @( h5 N6 m8 p8 j7 m
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok7 ^* `1 `+ _% Q+ @- d* l* ?8 S
  i1 Q9 D0 A+ b7 Y4 x* P  }5 I
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
3 t4 f8 Y3 b+ d+ u% x: w1 ]# ^# I) [; H( _" h, i/ v
载入指定配置文件
( d( Z- O. e; t. J+ ]" `# o
2 p& I$ h* m/ ]7 F# K3 o8 C" G, Z- JC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
5 b; G  j4 [) m/ T" e' o- }! C4 X) |: ]' A; j6 Y  ]' ]/ h
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程# m1 l4 G6 ]$ e# D- n& `
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx . Y8 j/ p0 E9 |+ N
start nginx : 启动nginx* {- T* R. L, K3 M
nginx -s reload  :修改配置后重新加载生效' l/ \  C8 k- y) J  r' U9 j' z
nginx -s reopen  :重新打开日志文件" z- ~* `1 F6 O3 O# e
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确8 v) v' [/ n: h2 \: W' V
       关闭nginx:4 v. U' f0 O. Q& C
nginx -s stop  :快速停止nginx
% q) B; Q6 I. K) }" i5 U nginx -s quit  :完整有序的停止nginx
% ?4 S# w  S7 L' h" W: p 如果遇到报错:% s* s7 L6 J) ?* ?
bash: nginx: command not found
% X0 D( k' ~+ l7 b3 j 有可能是你再linux命令行环境下运行了windows命令,
; L  h* P! k& \+ M, t& |" ] 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
4 B, V: w' u# F$ W 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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