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

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

[复制链接]

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx1 u2 O; i2 W3 [' r6 K8 G
进入nginx安装目录执行
7 X* h. e6 i5 a5 q. e
1 [) L1 \' K; S./sbin/nginx -c ./conf/nginx.conf
% ]# u; g/ ^: k. Z 2.验证nginx配置文件是否正确
) S* L( }1 L% U- E1 e6 ?. ~; e0 l' \' q5 R0 _2 u* w
方法1. 进入nginx安装目录sbin下,输入命令
5 I$ A5 Y; ?1 H" Z0 d+ d/ g( T* y. h; S/ p4 Z
./nginx -t2 X; q2 W9 d: l" q
回显test is successful说明配置正确
( J$ y4 A0 W  f3 I8 ?: f+ K! }1 U8 A5 T1 P
方法2. 在启动nginx命令 -c 前加 -t, c) u/ E, q0 I# v: t9 Q- O/ V
2 m( a0 v5 O( d. {( t$ R
./sbin/nginx -t -c ./conf/nginx.conf) A' h! D/ t0 F- n9 @$ H: Y
3.停止nginx
! q$ i3 i) x9 E4 t方法1:
& W0 d7 T. l/ }6 V9 K1 @! w4 s! T- ]+ x, {( Z
强制停止:
3 W2 E! N/ q9 M: r
; I3 H3 D- Z9 `% f& p7 f0 I- Y/ }./sbin/nginx -s stop
6 V! \! r: n# ]+ H) O+ v1 z处理完请求后停止:
/ s5 S0 i- l6 J3 o( w' y) u
9 ]# F' X$ v: t. o& L./sbin/nginx -s quit; H  b! C  c2 k1 r3 Z+ |8 s4 x
方法2:
+ f# H5 N: h1 T7 c8 r
# y; s4 a. T, p9 Eps -ef|grep nginx3 Z& @3 h, N) q9 K3 _; M% g
找到对应的nginx进程号
& e4 V8 V. \9 I+ o9 ~) g7 N. ~+ E; E$ S* l' d+ f2 @" a6 s
正常停止:/ E9 k4 N4 M! o. N0 i  O
9 E/ _8 j% B  N
kill -15 进程号4 f2 I  s1 J# _5 s2 v, P
强制停止:
  k0 G3 N9 i/ n7 o7 D# [- {# r2 P$ ^, _" q7 M" B0 c. ]  e  K7 n
kill -9 进程号9 {) L! P. m' O& X) x
4.重启新加载nginx配置文件
+ y& s+ t& p, Y. d9 c方法1. 进入nginx安装目录执行
6 _  ^* e3 U, ?. @: i
1 s) r, B* ~! |8 v% c# b2 y4 S4 C& a$ X./sbin/nginx -s reload
$ y; V( H0 l# d4 E: x, E5.重启nginx服务1 X* w+ x# j' }6 y
方法1. 进入nginx安装目录执行
6 |( a  v2 Z$ z: H! k# j7 h& v( E7 ~) R5 c) g3 T
./sbin/nginx -s reopen; X/ I1 D6 E% L
方法2.查找当前nginx的PID进程号,并kill
6 t) w# Y) @% C
1 P% h8 s; O' L' V5 I  H  eps -ef|grep nginx
) u8 S7 u2 P+ c3 o$ F' S% U1 m9 m找到对应的nginx进程号,进行- s7 P: d; n0 k

2 s4 h3 e% l0 d  D4 Ukill -HUP 进程号
& w5 ?0 @8 c' h+ m. g: n" f3 L! l  W4 r& j; u& E% ]

) S+ ^$ T. ^; jkill -1 进程号6 U+ W& \& p/ y2 i4 M* F
实现重启nginx服务
3 f6 I: M( {; v! a$ Q4 R6 C2 `' a! t0 p2 q7 E
6.查看nginx版本信息
5 e9 |( s) Q) D, r1).只显示版本信息8 O6 @( Q+ |2 ^5 C2 n( f5 o

" A. Y7 H; ~6 M进入nginx安装目录执行* ^2 V( S0 a" Q+ d9 ~; M4 R9 y' \

9 Q! Q9 V- r& _$ A* F./sbin/nginx -v5 L5 x; ~9 R6 H) H! G5 c' B. V2 W; F$ P; q
2)显示版本信息和配置信息' R; T: E+ \4 _  U9 `
' i% l, D7 _& j( X
进入nginx安装目录执行
: ^* Q9 i" c* d1 u* `
' r! n" ^  x! e7 X1 f( r./sbin/nginx -v
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动% f1 R5 d: O4 s" {# ~( J' Q9 w
#1.直接启动
2 {1 e& X8 R) r; b#进入nginx目录,执行启动命令
1 o$ D% w& m, f/ L' p( Ocd /usr/local/nginx/sbin
; Y7 n7 ^8 ?3 O2 R./nginx4 M: Q) l$ ]# e" n6 R
# 或者直接4 X% j9 }$ S! A% R/ Y
/usr/local/nginx/sbin/nginx( y. N! ]* R$ M# G! Y  T8 D0 H4 x
#2.指定配置文件方式启动4 G/ I% e5 o" h1 m2 P) ^- E
#进入nginx目录,执行启动命令/ K# d* }4 c, X: y
cd /usr/local/nginx/sbin
7 n8 x# M5 e) E9 P: M2 k( r9 a./nginx -c /usr/local/nginx/conf/nginx.conf3 C7 k1 M6 O9 Q: s
#或者$ y. ?: |- O3 N- I) Y$ O
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/ v' C8 Y9 U6 d( A0 F  M0 ]7 P+ n; H
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
1 @3 Z: c8 s! ^& a3 E9 ?3 W4 \# i) x1 j' F7 z0 g
#进入nginx目录
+ _( P1 M# {" b, W7 Mcd /usr/local/nginx/sbin
* `; w$ n6 Z4 f: h#检查配置文件是否有语法操作1 o: z: K/ X. w- G" v+ e4 T
./nginx -t
- i, W/ f3 S2 J) P! O* g# 或者显示指定配置文件  r, D. G: {  M. W  Z/ t2 G7 I
./nginx -t -c /usr/local/nginx/conf/nginx.conf& G0 N2 r+ w+ H3 |
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置1 z8 w" f4 ?# Z/ o& p1 [: i$ Q7 F
, E7 C; P$ I) A) p7 `( [9 \
#进入nginx目录
/ s' f9 `; S2 I# z/ Ncd /usr/local/nginx/sbin& o1 x/ j! D+ L
#执行重载命令
! M4 j: G! V6 W4 N./nginx -s reload
; m' a" l2 z0 F" a$ q5 P. N* U4 l
0 P, D  N1 r4 A& c  o$ H% w. }: @nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。$ J) [0 L6 \! ?5 p; V& }
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件8 f! Z3 D6 d+ g0 X$ V

3 ?% _- |# F0 y3 K# [/ ENginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
/ E# B' X3 H$ W* P# pNginx启动新的worker进程,采用新的配置文件' T- Q5 l2 A7 Q9 r! \+ |
Nginx将新的请求分配新的worker进程7 f" z, G6 Q6 I% M; U5 n
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程2 @) `8 s) g/ g
重复上面过程,知道全部旧的worker进程都被关闭掉。
9 K4 K5 k3 b2 B! H' G2 k8 D所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
: K" N, \& B, ]  b; u9 A. j2 C7 _9 K& z7 _) f3 b0 p& R
#进入nginx目录
/ u9 S  t5 f8 l: Y; r5 bcd /usr/local/nginx/sbin
* F: S) t1 u' A# 快速停止nginx
$ v' y  W/ k1 m% f* r/ |3 N  y% |./nginx -s stop
$ H$ k  T) _# ]" ?# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx. F) Y- J7 m9 [% M# d. P; o# U$ f! ?
./nginx -s quit
4 n0 f5 V6 }# n! {+ }2 o3 ?
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件0 ?; i$ D0 c* k5 y7 P
1 K0 o  B1 G3 `8 l9 U0 W' s
#进入nginx目录5 l, m3 X# x4 K
cd /usr/local/nginx/sbin
* @5 ~! d) m# i# 重新打开日志文件
# V4 c+ g5 G) e8 `9 X0 u5 d./nginx -s reopen, @% U+ t1 ~4 _' i7 m& ?
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。% }6 g; ^+ g/ J9 N: p
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。( x8 h2 g3 F9 f, s
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
  @9 \6 e2 I& B- e# D5 R- M一般我们需要两步:
& C# H5 A( W& f+ t6 O  k6 \5 n3 J) K# u) c6 s9 c$ L
移走文件并重命名
0 L7 `9 k1 g1 D0 ^2 Y5 h  e! V2 y利用 nginx 的 reopen 功能,完成新日志文件的生成。
% `. }: Q* ^( g7 ?' W* r2 ~参考地址,感谢博主分享
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
- |- m! u" }4 I3 M7 N& F5 P: H1 N, l
# 查看进程号,下图  master的为主进程号5 L2 K' E' S, x: x
ps -ef | grep nginx
6 w$ q! q( K/ c# Q# u8 \$ n#从容停止Nginx
9 M' X5 F0 @" [" J5 i5 Jkill -QUIT 主进程号9 v; V& {* U) B( J% V# Q% ]
#快速停止Nginx
6 D, C5 @, Z7 y1 q0 akill -TERM 主进程号
7 X% E- \4 x/ L7 V#强制停止Nginx
$ T; o' ~. E" W9 R& I, @# k3 @pkill -9 nginx& }1 \4 i4 D% K9 n$ `: A
#平滑重启nginx:4 l# l. Z1 R5 X0 L8 G. {9 x/ `+ E
kill -HUP 主进程号. I, [& ?) j3 t: G7 E' I7 w
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

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

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

1、启动:! ?1 q$ `0 n3 U0 o0 X8 P8 u

& _3 T, E) E3 j5 X! b' f' l2 `C:\server\nginx-1.0.2>start nginx9 |7 C, u: ?, R3 \
$ Z' }, P" `! }
7 J# a4 y% [( d- k8 @

- `  |9 o1 K' DC:\server\nginx-1.0.2>nginx.exe, J8 x; S& P5 e3 B1 h
  B& v6 X; ?1 [- H1 y& G0 U
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。% ^, {# [( Y& ]

& G) a+ G! Y6 c5 D2 v1 `2 w如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
) ?7 V* W- s6 B) p1 `
2 J, f: J1 l' J. {2 M3 W$ c6 S+ S. w2、停止:
& M+ W# o3 x6 o/ W- a7 Q
% G# V# V% _" G' TC:\server\nginx-1.0.2>nginx.exe -s stop
2 I9 z+ r& e+ b6 _! w' a9 [" @7 D- v
# ?) T, l* f0 M! E7 c: T3 B

6 i5 u+ o$ s' t0 U; @9 l5 _3 NC:\server\nginx-1.0.2>nginx.exe -s quit
0 q' \% o" W' }5 o; j* ?" `# r
* b% M: I6 c& ^3 r! Y4 n, }8 b- Y注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
, f4 n% j! P' ^# `8 R7 \9 H% V; [1 d9 W3 _, ~8 C) k, O
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
* p9 a! l) ?1 S8 ]! E- t
) r! H1 D4 r8 q; v# m- @( g# j& a还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
; V5 V/ A0 n4 j4 u. l4 a; S9 I9 S8 O; ^
taskkill /f /im nginx.exe > null 杀死nginx进程7 J; @/ J1 }; A$ ~5 ^
3 Y8 N( y' C% w
3、重新载入Nginx:4 r% U/ F: S$ {+ r: _

" C/ L" m# L# [4 U; dC:\server\nginx-1.0.2>nginx.exe -s reload
+ w  ~/ t8 ]6 _, k
7 v; Q3 |, x7 w9 s$ o  o3 w当配置信息修改,需要重新载入这些配置时使用此命令。
: O7 O% I  I) R, D: M' ?; B0 d" c+ p5 C
4、重新打开日志文件:4 Q! [8 w) F5 y9 P0 F' O
* f5 }- j* P# O4 O4 Y8 p* s
C:\server\nginx-1.0.2>nginx.exe -s reopen0 S/ K$ m/ m* y( `
' k* \, ~/ `; @+ K$ }/ }! h  m/ t
5、查看Nginx版本:4 I& ~1 x# g; }9 c. z8 C4 `

, Y- r1 e- _5 k, J' ~7 ~C:\server\nginx-1.0.2>nginx -v: r. d7 W  S6 Z+ P. T6 m
) }  l! c/ T9 B" j, q' O9 X1 p6 L
nginx: nginx version: nginx/1.0.24 y* ?$ T, @) G$ Z' o; I  _, |

5 r; P9 _, l; a9 p$ w4 E: X8 _9 Q) e8 L
+ I% n7 ]" n6 q! M
C:\server\nginx-1.0.2>nginx -V
" ?/ D$ [' r9 X( E% n/ u$ c8 ]3 r1 F
nginx: nginx version: nginx/1.0.2
( w: t2 x2 n& [2 ?8 u) ^9 S! Z3 b) }) k% N% |- d3 a
nginx: TLS SNI support enabled' V5 s  z, A- ?7 |7 P
4 d" E/ b' M. t& o. [
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, p! }4 q) P! _) F2 o

  s: U# E$ Z2 d+ E! `, g7 \注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。2 M& I) X4 a& S( w7 c! K
* X' A% A! Z. f. m  f8 j. Q
% h6 F1 I0 n) N7 r% v' V
6、测试或载入指定配置文件:. i- I' a, c1 s% ^( f$ U$ J$ c
' |9 H+ N/ x( V
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:. N$ b5 D$ y% J8 g0 D6 r( b5 C. B
: @' P% {4 {0 ~: v
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf2 n, \+ `  }5 q1 a3 T. p# f# x

6 |8 r( y1 R  W3 L6 `+ q, ?nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
: p% B, l' G2 n1 q, O2 \1 [0 N1 y& Y
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
, f' @: M: ]5 k5 ~
/ S. H) w9 S5 m1 k7 G载入指定配置文件$ N! f- \1 S5 U! h' m& `" o

( S. C4 [8 z: Y: AC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf$ a* c& \- ^9 r: h7 k" m" U
" K3 \8 ?# Y+ Z: v; Y3 {9 c
回复

使用道具 举报

314

主题

478

回帖

2960

积分

管理员

积分
2960
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
* D2 [: J- ^$ } 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
1 H9 ?% _/ T+ M2 ?- i3 d9 g1 l start nginx : 启动nginx* ]7 u7 y- a8 [2 Y+ ~: S/ U
nginx -s reload  :修改配置后重新加载生效6 s- J! Q" j5 I, q+ K
nginx -s reopen  :重新打开日志文件
2 j( d, ~3 w) d7 y+ V/ {; s nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确4 k9 J4 t! [# Q
       关闭nginx:
; u1 o% Y' |: v- }  b nginx -s stop  :快速停止nginx4 O; A0 k3 k& j  v4 q7 [3 `
nginx -s quit  :完整有序的停止nginx* F3 r. Z6 z/ S/ L8 O
如果遇到报错:: w, c% e8 |. C6 n$ K& O
bash: nginx: command not found
- p6 q. Z$ x$ i: w 有可能是你再linux命令行环境下运行了windows命令,
8 e( x& d* r2 J# r4 t 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload: r7 Q; ~7 t- h' r
或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-5 02:04 , Processed in 0.076853 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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