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

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

[复制链接]

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx/ g# r- Q" C4 U( n- Z( g9 S
进入nginx安装目录执行
8 @/ }8 d4 b! U$ _0 Q/ ^+ U) X& z8 L' y+ p& o4 F: Y+ q1 ]% C; C
./sbin/nginx -c ./conf/nginx.conf
4 h5 S8 _: Q: Z! i" g' I) z 2.验证nginx配置文件是否正确
8 {. ]  K* K% \0 O
8 |. k  Z6 F' [) o方法1. 进入nginx安装目录sbin下,输入命令+ s$ e# O! q9 a5 K, Y* G
& b! f4 H1 m9 h6 w  ?
./nginx -t
8 B7 }- r6 ]  G# Y回显test is successful说明配置正确. W& B  s3 p9 y9 ~: a9 O4 K5 m

* w3 A9 z* I3 F4 J5 `方法2. 在启动nginx命令 -c 前加 -t
" j9 g/ W& k! v7 U, a* [- @8 @, b
5 f5 P$ z8 M* |; x* D( H3 O./sbin/nginx -t -c ./conf/nginx.conf9 L. y( f$ H5 w' n, z* z" |
3.停止nginx4 _6 f0 c8 e* ?7 G
方法1:6 T: T0 I; z6 M8 [1 ^

+ q% }; t' @1 ]强制停止:) l8 h6 r  Y4 q% v
' j& J' |7 {9 u+ w
./sbin/nginx -s stop
  G9 F' Q+ z; b  W处理完请求后停止:
3 e" q  S; ^, `# H- C  a/ [% `2 ?$ j) M' A6 o1 Q: V% t
./sbin/nginx -s quit
! ]! _) N9 ?$ X3 l6 I1 }. N! p方法2:+ ~1 @1 C6 e: ]1 L, W1 I

6 N: g3 X/ f7 Q5 N: e. Qps -ef|grep nginx
" P" n2 ^$ ~5 c7 a3 ?% y找到对应的nginx进程号
0 d- J3 O% U+ @: t3 n
. R2 c: G6 Y" q' Z) x正常停止:0 a8 S9 e( E' r7 a) c( F

$ L2 y% v$ G& ^/ ~0 }kill -15 进程号
$ i  ]7 I* f. w" \9 {* N& H( y/ C强制停止:9 t- r; O; [  K0 T

" G3 ^& y& P7 K0 f5 W3 Gkill -9 进程号' \$ |- M& H7 V) t
4.重启新加载nginx配置文件
9 F* G+ R' p7 `) p- `3 z0 X方法1. 进入nginx安装目录执行( Z: o2 v0 z) E/ A

) y" Z+ ]# q! Z" r) g  p8 d9 e% M./sbin/nginx -s reload
3 C7 B7 U) X! ^5 {% q" Q5.重启nginx服务/ H" E  J+ g6 j* w" ?; e
方法1. 进入nginx安装目录执行  b. r0 d3 f" V+ N! r+ x
- [/ O- t( S7 W# P9 z
./sbin/nginx -s reopen
' [9 }1 r! B7 E$ n/ f( H  C 方法2.查找当前nginx的PID进程号,并kill+ X, l5 @6 S, M, o# ?
6 {+ I% Z9 K- t5 G1 A2 D
ps -ef|grep nginx
5 H9 [8 o  I, M$ W, m找到对应的nginx进程号,进行5 P$ k7 D2 a1 I; }9 d6 `. J
  I( Z' }: \. f' T$ ]& p( _
kill -HUP 进程号
( l1 t- R/ C% g5 a) v9 z: Z  w4 E. y8 a7 i& x$ k7 g
: u1 t' U9 f$ x% T
kill -1 进程号
1 `: w: o: Q5 A; G4 V' o- `实现重启nginx服务. P5 f6 M# |  s7 ^% [

' r# P$ m0 h/ k2 x7 D+ C. V. _/ R 6.查看nginx版本信息
: i! |: i- \5 i3 |) p8 f5 v9 l1).只显示版本信息) b+ R7 F% j$ p$ W# `; [2 u

' H) S3 I+ k, R; Y  f/ P进入nginx安装目录执行
5 x( |. W4 x& @5 L" ?- K1 l1 K; O9 D
./sbin/nginx -v
: X0 @8 C/ o( z2 D) w 2)显示版本信息和配置信息
% R0 c2 P" d+ g5 [" B! M9 f' u: q7 T3 l
进入nginx安装目录执行5 @& R' O* f0 s9 X: p: V" q

4 s0 J9 C2 X% \( A# S./sbin/nginx -v
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动; p" Q5 r. G" f; m  V! O) D
#1.直接启动! D; _% G; C; X
#进入nginx目录,执行启动命令
: C/ V5 e6 C- f2 _# scd /usr/local/nginx/sbin
8 x  }- S" I' e$ d! G5 _+ X. V./nginx+ d$ I8 X: p# b: f1 w+ d
# 或者直接+ J+ x7 l; R5 w; }  `
/usr/local/nginx/sbin/nginx, g, b  N" K* G) ]8 {; e# b9 E
#2.指定配置文件方式启动
; K2 y- P* u/ N#进入nginx目录,执行启动命令9 B) a9 F! z: W: J( t
cd /usr/local/nginx/sbin9 u- J! I2 y* s
./nginx -c /usr/local/nginx/conf/nginx.conf
' l9 v$ A4 i& {1 d0 A: t#或者
" n7 j* ]# T% X: j* y* ~5 }/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
7 b" w$ {+ e7 t" X9 P
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
; y- a6 N5 C7 o- [# L( o0 M# O/ c+ q
#进入nginx目录
1 O' ^" }% s' z( S5 T. ]! kcd /usr/local/nginx/sbin
7 Q! j. y) ^# v4 k: _8 U& r* @' `#检查配置文件是否有语法操作
! v# Q# t7 b' D: k- i! W./nginx -t
1 ^( L1 l4 J" F/ |# 或者显示指定配置文件
# B4 f9 r6 U, Z- I+ o1 l  z./nginx -t -c /usr/local/nginx/conf/nginx.conf) }1 e2 X; u/ U2 t2 C! T( P6 \4 G
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置- M7 J3 F3 R) W( n

; k/ n* V& Z! @#进入nginx目录
  E& y+ `' _7 r* q3 Z" @# s8 Zcd /usr/local/nginx/sbin
7 D/ U. c" Z  m, L' c& B  e#执行重载命令
/ S9 d; D1 W1 v5 o. ?$ f: I./nginx -s reload
6 w7 Q/ I3 J, Q* y5 @, t/ @; N5 d; I. n+ ]
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。' K) F- X: Z8 [6 }
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
/ V8 s, i; i" P( }
" z/ M0 W+ }7 t% B( G: H7 cNginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)+ z& G2 n0 l4 M/ m4 q" A" }; h7 {) c
Nginx启动新的worker进程,采用新的配置文件& [7 k. B5 F( }2 u" S( t8 h
Nginx将新的请求分配新的worker进程
( j  d% ^2 v% F. F( j, }0 D4 oNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程7 p4 S0 v' \$ Y7 \, ^- H+ F) G
重复上面过程,知道全部旧的worker进程都被关闭掉。  R8 l6 D! o( j
所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
2 G- J; S6 w9 F0 i# m9 h; P! t; I' X& [8 `! L- B8 F% ^5 R
#进入nginx目录( ~6 c, S% y/ ]( P
cd /usr/local/nginx/sbin
/ b9 }5 {) B4 |, y' j# 快速停止nginx) G& Q+ V$ r4 l( S
./nginx -s stop
, |: w2 u0 n  q3 n9 h) K; ]' K# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
, W: g) u6 x; [' ]- f. s./nginx -s quit
" v7 l+ @4 }3 s$ ~6 `
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件9 Z. M: ?/ ]9 }2 w+ i/ ^7 B
# Q9 P* D$ s4 _' p3 L& B9 N5 M
#进入nginx目录
8 H% g$ T+ L+ N: V. |cd /usr/local/nginx/sbin( N5 u" u+ y1 @5 {8 y/ t
# 重新打开日志文件
/ ?. S- L) o# U- v% J./nginx -s reopen, _5 _; p1 w, S
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。% a7 X2 f9 z! o' |5 \+ {
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
" x0 K7 R! w, u/ e但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
9 z! w5 Q; [  S  P. O一般我们需要两步:2 Y$ D2 P5 c- B! p9 _: |0 t2 z! \. C

( X0 H" X8 \8 N+ b& N9 w' L移走文件并重命名' j' W/ E" p0 k7 z# o# h
利用 nginx 的 reopen 功能,完成新日志文件的生成。" w) Y" O2 K- m7 b. F. Y
参考地址,感谢博主分享
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx- ~* [5 g3 [, ~% p# |3 o
+ w9 w7 t& w. T# h" Y* ]! N
# 查看进程号,下图  master的为主进程号' \& k+ v% I1 I9 B" R1 N6 j* L9 J& M$ v
ps -ef | grep nginx
* Q( Z+ f0 L0 ^+ [#从容停止Nginx
6 t1 {8 y1 G! d5 Z  Lkill -QUIT 主进程号, l* r, [$ n- u6 E* X
#快速停止Nginx9 {7 Z/ r- L8 t% R( M8 _
kill -TERM 主进程号4 x! q" L/ G) p" L
#强制停止Nginx
7 \. l3 `/ V7 {8 y* a0 h- jpkill -9 nginx1 t1 Y6 I2 a4 l( X) T
#平滑重启nginx:
1 L9 G" j1 t" Y0 Z4 K( Jkill -HUP 主进程号8 _- y! R+ ~, `3 I3 s
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

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

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

1、启动:9 r* Q( e$ e2 G1 d
7 F. w2 T; ~3 O; T
C:\server\nginx-1.0.2>start nginx  y, ]- v; ]; R. N2 F
/ }1 z. x( l2 _4 B' }

+ \0 o( ]) M! H3 q- l3 n& S( ?+ z% V
C:\server\nginx-1.0.2>nginx.exe
8 z4 k0 {' W! t) P* l, V& N+ g8 R7 V. y# w$ x
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
% J& s6 r* n( A3 H2 m4 M8 v" D" m4 [3 Y; k
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf; Y' P" [' o4 Z8 Z# p4 a

3 ^- b4 C" q1 u! \2、停止:
5 j/ E8 h! p! _5 G/ C8 J5 a+ p' J$ D* ]0 `- {6 r' `$ D
C:\server\nginx-1.0.2>nginx.exe -s stop+ F4 @! x; V$ g* ~

* ?5 G" m' {. g7 S2 p$ b7 X1 t, t- a) g- X( p8 R& k+ C1 j1 r

. \$ O6 Q1 D4 CC:\server\nginx-1.0.2>nginx.exe -s quit2 p7 D1 r! N) h+ H& F9 ^1 \

8 _; N; l8 U. V) R6 }4 ~注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。$ N7 P5 N4 B2 g3 f3 F
% p0 I: K9 X, K, m+ W
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe  n* N3 L& T" ~; \

2 O- |" s0 x7 P# C5 C( @% `还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
: ^0 ?0 D2 c5 q! p% k. q( Q) s% L0 Y2 T
taskkill /f /im nginx.exe > null 杀死nginx进程; G" m" B0 i) g" B. I$ y

+ U6 j' n# F( p* V8 d9 H: |/ Y3、重新载入Nginx:  M, T/ v) c: [- f( e

8 V1 b2 T% s4 O' u9 K2 a" Q0 fC:\server\nginx-1.0.2>nginx.exe -s reload
! _2 P2 Z. z* p: A' W. Q% T* \: g9 R! N
当配置信息修改,需要重新载入这些配置时使用此命令。
0 s- F% {# C7 A" j- K# i9 T6 G! k' f; X" A
4、重新打开日志文件:( t9 r  u% [0 Y% r/ Z1 Q
% f2 K) d- F( f# E% a+ g
C:\server\nginx-1.0.2>nginx.exe -s reopen
: L4 Y2 @. ~' k0 G4 l' a8 Q: _& H# i) |
5、查看Nginx版本:/ z8 Z1 B0 H0 _, R3 X
; x: V7 ~6 K! d. k5 {3 H8 n2 z6 |$ A
C:\server\nginx-1.0.2>nginx -v
( _. T( ~- m0 n+ G% w6 Y8 v' r/ s! R/ B* A9 C
nginx: nginx version: nginx/1.0.2
( Q4 G8 k  \; p% S/ c; |- u7 t

2 l, z: b3 B  F$ Z. O( T. c$ D2 q$ g% [1 }/ h6 o
C:\server\nginx-1.0.2>nginx -V+ c7 M. P/ y. j% ^& O5 R) ?1 U+ f
& ^+ U7 s3 R* X) x# V# C
nginx: nginx version: nginx/1.0.2
$ E, B8 f3 m$ T) k" T3 o
& ^0 p. }' Y4 e* s, {5 w; xnginx: TLS SNI support enabled) P# k, h/ z% c: e! W6 Y
9 n5 c. O$ |5 c2 D* t7 S3 X( {
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* b2 `/ F% ~3 l2 e; j

  \3 x+ k$ U5 D% n+ @: [注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。- L9 @4 l8 }+ V; b" A6 w

6 Q) _& f" Y7 d6 o5 x- X, P5 X! V! j3 Q" o$ [
6、测试或载入指定配置文件:# _- R* L7 M  q2 }* s/ B* [

" n) ~0 Q1 c- I* V8 S注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
7 X3 Y. H# ^/ [4 f5 A& o2 p2 q; L- P( n( Z# O: D
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf* @' N! N$ P6 x: G

$ P# @7 j. w9 ]- unginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
* n. }6 o: K4 |  K* |, W+ d. k' h% D+ S: j' c, |! b
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
+ Z, @/ t7 K; b1 R* t+ Y0 t
+ R+ ?* K1 b4 [3 C7 Q载入指定配置文件
) G- J5 b% f! U& U% g$ N2 d0 P5 o$ D) U# b. F2 M" H
C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
+ a+ Y' X- s" ~6 l7 R) c2 F- c% S5 y5 s7 d+ ~9 }/ j# ]
回复

使用道具 举报

315

主题

479

回帖

3001

积分

管理员

积分
3001
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
) i! X- N* }) v2 n7 q4 ? 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
2 _( U: ?2 H( A5 w/ T start nginx : 启动nginx
  [# e- o+ `( v8 C9 \' h nginx -s reload  :修改配置后重新加载生效) C6 G# z3 _, a
nginx -s reopen  :重新打开日志文件
& m1 n& R' K$ l' _ nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确. z, O$ d. \9 z  _  [& i
       关闭nginx:
( Y" [; v6 k* e, {! G1 w/ E) c nginx -s stop  :快速停止nginx: P+ j/ h/ Z2 P- z1 L, a
nginx -s quit  :完整有序的停止nginx8 r8 D/ @9 c* H
如果遇到报错:* E# ?9 E; s6 D6 U1 ?6 v" F! a
bash: nginx: command not found
- c! }/ K2 b* `$ M7 F* f: W5 l 有可能是你再linux命令行环境下运行了windows命令,
8 K! o' |$ j8 B3 i 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
3 E) t8 O/ n- L; g% R9 u7 F& ~ 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 13:19 , Processed in 0.082853 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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