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

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

[复制链接]

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx# p9 i" z6 ^! g# s$ k- x3 P$ _: N
进入nginx安装目录执行
7 h9 q* F: _% k6 a) Y& l8 ]  F, V
8 j9 F. T7 c  @1 E3 h1 ]- Y./sbin/nginx -c ./conf/nginx.conf3 G0 |2 I. f) r: @8 S* ^
2.验证nginx配置文件是否正确; H/ R& A' x& V/ ^; i3 V

8 W$ y; H1 Y$ g# h) L' j& P  v7 w; L( f方法1. 进入nginx安装目录sbin下,输入命令' }9 @# F1 r1 E  E. ?- z9 l$ P
0 v: H+ Q/ u* _, `5 s8 F: J$ _
./nginx -t/ ]- r: ^( G2 R# e6 k
回显test is successful说明配置正确' V5 z: [3 v0 C, Z
3 n, s/ c- b. T5 {1 q; Q3 g( q. T
方法2. 在启动nginx命令 -c 前加 -t
' M8 D* J: r3 T7 l3 F, i+ @$ k. ?
./sbin/nginx -t -c ./conf/nginx.conf
. ?2 ]; _  D$ T' X+ U& B$ K# y3.停止nginx: Z" n/ F( }$ N; b8 S1 ?% L
方法1:
9 \. f+ N: ]. m$ h' t% T$ Z
$ R5 h5 j- _2 v& E4 f强制停止:
+ B" \# X4 @6 Z" O; E+ a7 M: @2 [7 A' ^4 Y& `7 {
./sbin/nginx -s stop8 o( y/ y- A2 j% s+ Q* E8 z, G& e
处理完请求后停止:
* s! k& V; g4 G) s! Y  ?& U) m- C4 M/ }- [! M+ j; i. W& f
./sbin/nginx -s quit, d" v- }5 ?5 ~2 ^
方法2:
" @, o3 l; Q6 {8 u0 N+ y) Z
- x& p1 G9 b- xps -ef|grep nginx
* i8 e. v' b  i$ x9 g- g2 A# @* }找到对应的nginx进程号8 I+ q" J, k: L: r( q. }5 O
* n$ x4 z& @8 ]0 ]% |1 o
正常停止:
$ F' @5 \  O( g2 G# l4 @+ T7 f/ K
kill -15 进程号
# L5 c( y: }; q9 h强制停止:; {" W. ?2 Y) j+ M0 ]9 p% b
, e4 c( G& s0 {% i
kill -9 进程号: v% s& v# A/ @/ N4 F$ L
4.重启新加载nginx配置文件
5 V& C+ |. f5 z2 a; ], e' e方法1. 进入nginx安装目录执行
3 d6 O; @' C2 M) |$ l0 y+ C# O+ w$ C$ g+ S0 R5 G3 C' D4 _# M
./sbin/nginx -s reload. ]: w$ \; g7 v
5.重启nginx服务9 ^0 m- z* n8 `" N
方法1. 进入nginx安装目录执行+ j% J' \/ ?7 f& p$ i; r# J2 s

3 ~* p) f: o! S" ]& m./sbin/nginx -s reopen
* \" o9 H4 [& ?- v( F 方法2.查找当前nginx的PID进程号,并kill) [' S" i$ b9 M$ \

* C: G# w5 w& O$ T$ ]( Xps -ef|grep nginx
& B# K( M. u" T7 n; s3 k找到对应的nginx进程号,进行& e% A6 O; Y8 J3 Y  n: j

% X+ C! B# @4 b& a8 }7 Pkill -HUP 进程号1 F) Q9 X  S5 O3 ]$ R

3 q3 V; A% O7 I5 @0 }, ^: t& N. ?" i" b1 M( y
kill -1 进程号
# E# c! |" b8 Q2 N实现重启nginx服务
7 \% F  r9 c* S4 O) o/ Z2 |3 e2 z; g& P% H
6.查看nginx版本信息8 N+ _4 w" R: y! V5 h
1).只显示版本信息
+ d( c& {1 Y' i/ P& ]8 R0 f; s
进入nginx安装目录执行
+ r/ d; {% W/ z" W4 r" \
0 V9 N0 X7 h) s' {* I- l./sbin/nginx -v0 R1 K- ~" M& o9 M5 N1 D7 ~
2)显示版本信息和配置信息
$ y5 x! Z8 _6 D  m" _: Z9 T1 s$ \6 ^) _4 ~+ i6 L' J
进入nginx安装目录执行+ m% M. s# L" Y0 |1 A: ]3 M

$ d8 d' e/ }9 R* \9 y0 Z6 C- g8 l./sbin/nginx -v
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
4 T3 T* R; M; _$ c/ K" U#1.直接启动, F) C4 x4 A6 {1 u
#进入nginx目录,执行启动命令
& M/ l# z7 x& c, gcd /usr/local/nginx/sbin5 N$ i% Q. d- K+ ]
./nginx. Z  K0 U8 f$ ?0 U2 ^
# 或者直接
5 R. {4 Y5 F/ D- W% B+ ^# `. E/usr/local/nginx/sbin/nginx! x4 S6 M) l; @) ]& f9 W9 C
#2.指定配置文件方式启动
# ?. D) v6 ]: F- g. l#进入nginx目录,执行启动命令
. [: Y. ^& @; d  u! _' lcd /usr/local/nginx/sbin
3 X! Y% x# I% u, b# x  X- K2 T./nginx -c /usr/local/nginx/conf/nginx.conf
) R, N8 Y0 Y/ k0 g#或者* {* H6 |; w: \$ A( F7 X
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
& a/ n1 a$ H/ N! H& _% q! Q/ g
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件' l1 e' O0 n& r' ]' o

' R+ W% R. R) J#进入nginx目录' q7 @7 f4 U* J# [: G
cd /usr/local/nginx/sbin
( w* J& D& c9 L% E- w4 q#检查配置文件是否有语法操作
& p0 |% W! E6 L" i./nginx -t
4 W! h. X& c& U) P$ X# 或者显示指定配置文件
9 s: T8 X6 {) m5 ~& l$ g./nginx -t -c /usr/local/nginx/conf/nginx.conf
! I* `( b& }: [* H; L5 F. d# z) ^
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置, W, @; F" e0 L, E( X

3 c4 X7 M: J: N3 d+ |#进入nginx目录3 y# Z  u% a# V8 Z" M( n
cd /usr/local/nginx/sbin
6 v4 m) m" }! ]3 ]#执行重载命令) m6 K+ O2 P6 h
./nginx -s reload
$ b9 @) Z( M8 Q; S2 r; Q* @/ W, r1 b; h1 h" t# t, ~0 E7 H' z
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
" y/ {4 Z. }4 R+ D1 inginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件  u" ]+ ]- N$ k$ C- m( e
- q8 I' Z# Q1 \
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)0 r& v- s. d" e5 I8 p* A( V# J' U
Nginx启动新的worker进程,采用新的配置文件
  P$ I3 {: c9 g9 }* e9 x& cNginx将新的请求分配新的worker进程3 d5 u% u' G& k" D/ S
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
$ p. {1 e9 \+ q8 x重复上面过程,知道全部旧的worker进程都被关闭掉。
2 s. U1 a& G% W0 r3 n3 k$ _所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
6 R) s" ]/ K  m# b, `8 L4 p
" Y4 b. i7 M0 t/ i/ n; |#进入nginx目录# b) s2 G3 d7 b
cd /usr/local/nginx/sbin3 Z$ [1 G4 h% U* Y& w) n. q$ E) K
# 快速停止nginx
/ m* K9 r$ U" I2 ?) G9 K* D' g./nginx -s stop; F8 }. J( @# Y- _, v
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
. d8 o# L! ?4 F& Q0 o- K! O; l./nginx -s quit
% q2 g+ u) b, l
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件4 {. }9 i/ K, z: T3 X7 K  K( L

7 U0 e' ~) a( S2 p: ?#进入nginx目录
+ Q8 g) C: Y9 O; r& _/ p5 |& acd /usr/local/nginx/sbin
* [. y. D- ~# ]# 重新打开日志文件
. b; W7 f. U) A& x! H: P./nginx -s reopen0 h0 d2 {$ B/ y+ _% p! E4 f' a
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。, J- o+ x( p8 z8 d9 ~
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
  P3 S, S# ]0 W7 ?4 J但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。) a8 E8 e3 z3 a" [6 F
一般我们需要两步:) B+ j$ B) f" l4 D* U/ g5 c0 J* R. e

. s: V( F6 k) V% b9 m4 x- R移走文件并重命名
6 ^4 Z. |; @" H8 U利用 nginx 的 reopen 功能,完成新日志文件的生成。* U4 R' T! U3 T5 s( o8 ?* d- y
参考地址,感谢博主分享
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx( m0 o3 Q4 A, M  v) r1 k6 c
/ H# \0 m  R# B
# 查看进程号,下图  master的为主进程号
: b/ n2 @5 R" j# b2 T6 tps -ef | grep nginx
9 w) g% V) b: K% O/ o% a2 s#从容停止Nginx
# D) F* r' y& y3 Ckill -QUIT 主进程号
( r7 D( u# a" L) b#快速停止Nginx
; V9 n0 s. U% b) O& f$ g) r$ s2 K- Hkill -TERM 主进程号
; L& Y$ Y; G1 d/ m#强制停止Nginx
# d" x! k( E! X6 w: E/ J: b# U; lpkill -9 nginx
& p0 r& B, b2 C  V+ w4 {. R#平滑重启nginx:
5 `) B1 E4 V% [" q5 m( h6 H; p$ Okill -HUP 主进程号
8 M+ w1 |8 M5 k! r3 I% A+ c' ~
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

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

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

1、启动:
) s1 w5 @1 W% |
4 I8 d/ E7 s3 M5 A! r& s  UC:\server\nginx-1.0.2>start nginx
! r" n* z/ Z8 P+ J, N) y
. l) u% j! t9 b' N. d4 F7 o' g9 k) q; W9 Q8 J. O

% B! n! E5 j6 v4 g* O; X/ v' mC:\server\nginx-1.0.2>nginx.exe
7 D0 m; {) P& B0 ?: r
; o- m! u$ e! \% Y# @0 p5 V3 }8 ^注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。' _" E) R6 c' V. @( ?& t7 U

; v3 F4 ]( x4 L( ~如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
, @/ H( W3 R1 P# l9 o* `& A/ ]% _3 Z: ]
2、停止:4 l4 Y, S( n# ?* I
% _, _/ u# }5 _0 A! ~$ c& s: E
C:\server\nginx-1.0.2>nginx.exe -s stop
  d, H' V" p; O, y0 |( W' l5 i" T6 R
5 n* k: q+ P" \! ~$ g6 t9 C

( Y6 Y: |; G- J3 l. W! J, x. E5 |* tC:\server\nginx-1.0.2>nginx.exe -s quit
: ?  y( b  f( {3 l' E' R  X
8 }, N9 X6 Q/ p7 B# V6 k注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
7 D# w2 |4 [- Z  ?5 j( {0 J" T2 e& K7 E/ u
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe  P+ \' b) }  j- x1 L9 ]7 l
# Z0 r2 B2 k7 G# n) V: O. E4 H! [, v( g- K
还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
- {! A' q+ h/ T) C# p, E: v7 |5 ]
+ A4 p+ o7 B  F% R6 i* Staskkill /f /im nginx.exe > null 杀死nginx进程
9 n, x9 i# x; X* c2 q" l, }9 w2 h; Q$ t) o
3、重新载入Nginx:1 V+ m- V, G0 J' d. B! p

5 d2 i2 o. n9 y, P  z5 Y7 IC:\server\nginx-1.0.2>nginx.exe -s reload
) B8 E% F; W+ ~
9 r, t& z6 L- l当配置信息修改,需要重新载入这些配置时使用此命令。
7 H; V* L2 g$ o" R* x, y
6 |* n3 v- V3 n# F8 T) @& n+ O4、重新打开日志文件:
. ?; S8 f; v) c$ `5 C% `, `9 P8 U4 e5 L
C:\server\nginx-1.0.2>nginx.exe -s reopen
% h5 ^: u. \  ?7 k  c) N$ B$ `  {* k6 O/ L( q  e3 K
5、查看Nginx版本:
( v' m) `" N2 K! I
& ?; D5 c9 u( nC:\server\nginx-1.0.2>nginx -v
. S# S+ C0 u  M3 d) M* R4 G. E0 G% y& \2 I- x& V
nginx: nginx version: nginx/1.0.26 ~- j/ o6 o3 {7 f" r4 Y4 }; \& q0 C

- m6 J; ^8 h. p
- Q% x  d# Q8 E/ Y7 T4 c. N! x7 H' ~9 N
! l; V+ [; E& T# LC:\server\nginx-1.0.2>nginx -V
& d% ~9 Q- K, y# m8 C+ ~( \( a
# x! ]9 D& ~; n, q/ j: Q2 P' c5 s& nnginx: nginx version: nginx/1.0.23 I5 H  i+ A3 O
5 [9 t5 n0 Q& q1 S) n7 H
nginx: TLS SNI support enabled1 O9 `( Y8 J2 ?! Z

/ Y7 s& c0 P# ?4 h' U) `- ]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  }  H# C2 _) ^- U3 ]# Z. j0 a

' J: r, o/ Z2 x/ R& |注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
' M, ^! X! v9 T5 z0 c
. c+ e& J1 j; ]/ ?6 b1 b3 S9 Y, Z+ Y3 r2 R. q
6、测试或载入指定配置文件:5 j% X* l; s7 j6 C, U
" S8 v% }7 A% r* X0 g
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:6 z( s. J$ M' `: z* C! C6 J

% a$ K/ z+ h! |/ j) @C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
: J0 k2 X  b7 ~6 j1 y  k
' o) Q' ^) ^  \, |nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok( E. l6 b: i' K' A* ?

3 m3 Z* ~- |5 k5 F$ Nnginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful$ X& ?* }  }5 c  d  d

$ y/ A! |0 U; Y# i+ Q载入指定配置文件" a4 G! k9 R/ o+ [* z6 z( K

  G' l9 P5 x! B; i" ?/ n& U5 xC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf* F0 B$ j' U: |7 Z1 e

' P, y4 T& \0 {( n" Q
回复

使用道具 举报

318

主题

482

回帖

3094

积分

管理员

积分
3094
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程; l: V: V3 E1 k" v# Y; `7 f
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
$ |$ C9 @* H/ X) ~9 D- B' f start nginx : 启动nginx
/ K3 Q' y. g3 }3 B' R' q nginx -s reload  :修改配置后重新加载生效1 `) M; Z9 a" g
nginx -s reopen  :重新打开日志文件
( z$ ?6 M* N9 x) [$ ~, w nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
/ Y, |, z0 ^- }- t" l       关闭nginx:8 Z$ C9 S+ x. w( h% Y4 y/ F
nginx -s stop  :快速停止nginx: Z( U8 p( q( C' w7 Z  W
nginx -s quit  :完整有序的停止nginx
3 r% P+ P) B; F5 l. }9 ^ 如果遇到报错:0 s: w0 ~3 b; p0 V" f; f7 [  \6 u
bash: nginx: command not found1 O0 r% Z! G" K7 V( a+ V* m
有可能是你再linux命令行环境下运行了windows命令,
( D" G0 k8 Z  e  g! { 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload- k' Q4 M: O* G$ e  V' C) M
或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 18:48 , Processed in 0.087795 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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