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

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

[复制链接]

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx9 v7 }# H! D6 f+ h5 I
进入nginx安装目录执行
3 U9 ~( K# o/ O0 f! C* i. A' ]" G7 B% X5 K' u$ V7 _" c3 c  o
./sbin/nginx -c ./conf/nginx.conf
# b0 [9 S" g- v 2.验证nginx配置文件是否正确7 e: G, i4 S" ^0 z* A
6 K5 S! \8 F/ G
方法1. 进入nginx安装目录sbin下,输入命令9 x- N& v% p8 }

4 e! I1 B; j; U' T: Q2 Y./nginx -t
) j" K7 u4 i- U$ J4 t) Z回显test is successful说明配置正确
$ \& c* [1 u+ }( O8 t
, t7 }  H5 F& ~- a方法2. 在启动nginx命令 -c 前加 -t
/ M% ^2 M! W! }2 ]3 @, |. R7 O: k6 H) j, L9 ?% f! C$ d) ]# V  h
./sbin/nginx -t -c ./conf/nginx.conf& j1 R' l5 n* d* }* f  Y1 p9 D
3.停止nginx( a# }5 B6 ?, I9 l
方法1:
; o- w: w  ~2 ]( s1 }6 W) D6 Y8 u9 A2 z$ e
强制停止:
" G9 Q: @# ~* C& s' i. D
1 }/ e1 D. j9 ?# j+ {- B6 I./sbin/nginx -s stop4 m/ {' C7 b( N1 h2 w- V9 u# e; r9 ?
处理完请求后停止:% \3 F' U; {/ }, `& ?

* M9 g# g& Z- u4 V2 S4 U" M8 d( p./sbin/nginx -s quit) M6 M$ s4 }4 N7 {% n
方法2:7 M$ q" U* i7 B! D; a/ c* G

$ \( Q1 [" G3 r# Pps -ef|grep nginx  E+ h- Y" L# @7 u, o( A- ?
找到对应的nginx进程号  c3 N7 ^+ g0 d* T: [) O5 ^: i& M

# u" T; F: z( L) e1 q正常停止:7 @1 {3 F: F, A
+ N1 I- }+ V6 O) e
kill -15 进程号2 E$ @) f2 _; W9 k7 y( H" `
强制停止:- Q5 V6 V% a1 C

, v! B  O, g. @& ~: f) G( pkill -9 进程号
" c7 Z) A: @' v" v9 M& x4.重启新加载nginx配置文件
0 p6 Z( f: W! x* z0 t方法1. 进入nginx安装目录执行
7 r9 O% v) k/ k+ C5 \
0 k. a) ?& R+ \" x$ ?9 }./sbin/nginx -s reload
; F3 n5 d, P% H* P3 e+ a- ?5.重启nginx服务, e* V- y( m8 o# Z2 t
方法1. 进入nginx安装目录执行; m2 q! Q  Q. r( m! {; w

- x( l3 n5 E3 n" k2 G: y, Q$ ~; K./sbin/nginx -s reopen
0 Y( F6 a% N4 _' b6 x3 y$ } 方法2.查找当前nginx的PID进程号,并kill# I7 y1 _" a6 N" `8 v. X

: X$ x; F9 x' T9 r2 q9 pps -ef|grep nginx3 K3 w( D# V( _6 _2 g
找到对应的nginx进程号,进行
9 c4 B& T1 L) P0 j: U8 v: f- y0 P  F+ k% P3 @/ G
kill -HUP 进程号
3 c: a# x* W! n: Q( N& i4 A+ M/ h7 }# u  l) Z$ `
) }3 v. Z0 ]2 @2 E
kill -1 进程号. |# N& I5 H/ ]' V* h/ }: \
实现重启nginx服务
3 j& R3 v9 H( r- |, z. z  {
! u, L: b' m2 O: `( A2 B 6.查看nginx版本信息/ o0 g0 t4 @( u
1).只显示版本信息$ r6 `. r# y# n( ^' r
1 E$ b# P& a( U1 @
进入nginx安装目录执行0 z8 ]7 d# Y4 P- b& K9 t6 a0 h
- g' ^, p3 [" g* S" d" y1 \
./sbin/nginx -v- ]" c' w. m) i" ^! E9 I
2)显示版本信息和配置信息6 Q8 }! O6 i0 d% s( Q( |" L

6 N. A& {2 C$ s; r, @进入nginx安装目录执行
7 ]9 A! t5 k, h% R; _3 q
) e: Q0 [! c# D2 i: c+ g./sbin/nginx -v
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动% }; M" D+ J  m# Y+ v! z/ m! L
#1.直接启动3 n5 L) ]9 D$ y$ w; j" M8 y3 V$ ^; K
#进入nginx目录,执行启动命令- k) d+ ?4 U# H' Q  Y- S* }5 p
cd /usr/local/nginx/sbin' R" z2 X" [- f& k" e) N! @
./nginx8 O7 n( f& M+ Y
# 或者直接
$ x; j7 s! p* ^+ L6 b. x1 y/usr/local/nginx/sbin/nginx
' }7 N: e+ _2 V/ q' u  {#2.指定配置文件方式启动6 p3 `' k8 @2 A  B" H
#进入nginx目录,执行启动命令* c4 L! \" ?, W3 T: G
cd /usr/local/nginx/sbin
( `& J  r6 N& ^+ x1 M6 }7 d* Y5 J./nginx -c /usr/local/nginx/conf/nginx.conf& O" A3 V6 S# P  @% k: \/ P
#或者+ m8 E! e  o) _' ^: u$ w
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf3 C3 r) V; j! o/ `! ~' F* G
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
& A% ?2 T; T! v. v/ X7 Z0 ~% t
2 {7 r5 ~8 ]7 E/ @' i$ E2 u) O$ Y* O#进入nginx目录! x1 f, x9 m* ~4 B9 }- Q
cd /usr/local/nginx/sbin4 O! }4 G& {3 [# s* B& ^
#检查配置文件是否有语法操作
: Z$ S- C" c' T. K& D5 k./nginx -t3 S" a! f8 D" o+ D# \; s+ ^; W
# 或者显示指定配置文件9 o* I6 y! q2 F( g3 j6 A4 D. Q; H
./nginx -t -c /usr/local/nginx/conf/nginx.conf
+ e+ K& w% F5 J" F# ]
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
: @" Y: |$ G. V. c# B9 j. ]
+ k2 ?" c9 s- b7 ]0 ]#进入nginx目录6 B- l4 c- ?9 y4 K; g: u
cd /usr/local/nginx/sbin5 h( B! ]/ o7 }$ F5 C
#执行重载命令
0 g7 |3 z, K5 l1 u) y$ p; L, L% Q./nginx -s reload
7 ^$ J, R, F/ v  _, K, b9 D6 o3 O. o. v4 p6 V3 r6 y3 f
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。9 O, B4 B. @4 |& h5 k
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件4 [+ w  O1 U0 K/ I) _

: B! n5 E: l/ q; F% zNginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
3 T) N/ _3 |2 F, R/ q& RNginx启动新的worker进程,采用新的配置文件0 F6 t0 O2 c1 J. y: M& q
Nginx将新的请求分配新的worker进程' S) f9 c3 B" H) {) b) ?7 l
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程! o  ?+ A3 e  Q1 C. W- C" q' A
重复上面过程,知道全部旧的worker进程都被关闭掉。
* X8 A3 ^  d9 ?2 b, y所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
8 G& W/ _+ B( ?" k. W- `$ i. D  w, H5 x% L( A
#进入nginx目录5 h, }8 j" h" G4 s( [  @
cd /usr/local/nginx/sbin! t! v3 O9 n8 g0 ~1 l0 i5 ^# y
# 快速停止nginx
) i8 D1 {% Q3 S. t1 b./nginx -s stop
7 P+ U' x* {) V# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx9 A( t$ Q( I5 b
./nginx -s quit, v+ v) X4 D, I
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件
4 [; O$ ^" D) d
  h- T: }- W* ~2 Z( d% z#进入nginx目录
4 t4 y/ I: D+ u1 O7 Y8 t+ Jcd /usr/local/nginx/sbin' z! m3 }4 ^$ ^
# 重新打开日志文件  u3 u6 m9 B. r( K1 L; W
./nginx -s reopen" d; a) U  x# w2 _* A
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
5 E6 ^9 c) `& a1 c7 x% h( b$ R当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
! Z" D# ]+ A! c/ j6 l* p但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
) N& n. Y1 g# }8 E一般我们需要两步:
! \$ j0 w7 h7 a( G% ]) _$ s. X6 ?+ P6 _- i# H' M
移走文件并重命名
; f9 x  b4 d$ Z: S! [2 `4 T利用 nginx 的 reopen 功能,完成新日志文件的生成。2 J6 C1 I% F8 m0 Z
参考地址,感谢博主分享
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx% A. W+ d9 F( s; J- E, e- Q" \6 h

" a! S! d2 E3 B1 x6 q- B# 查看进程号,下图  master的为主进程号
6 |0 E: M- |6 P& \+ h7 D9 J- bps -ef | grep nginx
+ i- q; Q# U# |& \#从容停止Nginx3 W1 v8 s0 O6 J! G; E
kill -QUIT 主进程号4 U5 z, e5 E; F1 W; B, C
#快速停止Nginx
4 r4 m9 Q6 R/ ~' }3 `  Hkill -TERM 主进程号
- P3 |! d; G' p/ `#强制停止Nginx" a9 d/ L: z. n& S8 c% b
pkill -9 nginx# r. K' H. u# W" G7 p( r
#平滑重启nginx:* T9 @- s1 |4 w  W. k9 |( h
kill -HUP 主进程号
. @6 m1 Y- @; K% f+ Y7 U
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

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

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

1、启动:; m! o" e! l4 f/ W, F! r# c+ w6 D
3 G" a2 k0 O; R3 m3 K5 }  v
C:\server\nginx-1.0.2>start nginx
: s+ u. t& |$ ]5 B0 f$ T4 Z7 h5 p$ J% G2 X. {% ]6 r
- w$ T; K# B. }3 L$ R; q, J/ O
' C6 V4 T3 U* B/ m( T/ v) N; J
C:\server\nginx-1.0.2>nginx.exe6 z0 U  x) |# i5 b
1 M0 j, c8 e7 O' B; v, g% H' ?
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。5 o" R4 B/ P8 ^1 w

6 s2 G' @% n8 t# \1 B$ O如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
) |- L' T; P8 G+ c' ~& E0 ]& h3 {9 V; `7 p( I9 Q9 R* U* d$ N- V8 s
2、停止:
" G$ E) x& n) T8 P. f1 l
( Q: H" [1 |3 P4 sC:\server\nginx-1.0.2>nginx.exe -s stop
* r$ {# P2 {" z& Y# K
" {# m# d, `6 q- S: m' T( q% P8 R3 t' \( @+ R3 h

+ \( L! P- w( v3 c1 ?C:\server\nginx-1.0.2>nginx.exe -s quit: C) k8 S: b: g  b: F  _

7 V( ]# |$ O2 X0 k1 B* B注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。/ }6 z0 ]" f9 o5 c  n# J( E

. `7 I+ j, S  x* m' `# C0 C/ s' j& g执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe: y" D* l; y( k; i9 X

8 \  @2 v& p  }还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
/ P9 n. q- i0 Z& a
* o, \7 f( J1 y/ B8 Otaskkill /f /im nginx.exe > null 杀死nginx进程
2 d/ W9 i* m# s; n% R# z
" q3 C& L* p. V4 H9 o2 Z4 k3、重新载入Nginx:7 r( h! ]' v/ a! R. [% Q, b
4 [" I# |  }6 n2 Y" w! m
C:\server\nginx-1.0.2>nginx.exe -s reload3 @# S- h) C, ?* C5 v6 j
' R  q: t  C1 I4 Z' F
当配置信息修改,需要重新载入这些配置时使用此命令。
8 B3 n9 \* ^3 l! O& @2 l5 m
$ s5 A* J- r  x$ q: U4、重新打开日志文件:
1 @% m$ m$ k0 @% ^4 t9 V# M2 e' K6 \; ?; X2 V9 r
C:\server\nginx-1.0.2>nginx.exe -s reopen
3 s8 |) D: [$ {: m# q1 h. ?6 z
3 W' X( t. a9 t% k& M' V5、查看Nginx版本:
! @6 j. U( p1 J! O! Q: H$ S. ~
) U7 B# K3 ]' a% e' n) `C:\server\nginx-1.0.2>nginx -v- O2 t2 {; t1 N+ V' F9 s' a2 w

, m5 R: L% P$ m6 O. J" `nginx: nginx version: nginx/1.0.29 z( b2 |! _- o. y: r
; P+ I, L2 I/ e. E- V
; g& @! Z; a' e4 Y

+ I& e! C" y; j8 D+ y2 }C:\server\nginx-1.0.2>nginx -V
- e+ W% _: D' ?, E- t3 p! Y( `8 U% h; {6 ]4 i6 Q6 T
nginx: nginx version: nginx/1.0.2# [& x; l+ d4 X% a! s' I
# x- @4 M  l0 s( Y" ^/ t3 t
nginx: TLS SNI support enabled
$ F. j2 S8 Z4 t' K6 `* S: K3 I9 K% a/ m. D0 e& T0 ?6 W# k
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_module6 O0 n% y+ `* `7 c/ _- ~8 p

7 A3 n4 k6 H. Q8 r7 z注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。8 g# {$ ?  D3 j3 L0 ^& S% r
5 d" s" l( o1 Z0 i; I6 l  X

3 F9 n8 D5 P) v6、测试或载入指定配置文件:
0 P$ P' n/ `3 M9 u3 g. F: F" H: x' a; {: e# O3 T
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
3 Z* I; }" n5 _% c5 o
* I1 i; h: V2 M  ]3 ?- z+ C+ vC:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf$ M. t- R1 k! Y6 A/ n9 Z+ t1 M8 S
) h# Y/ ^: ^1 m* f* h& t  ~5 v
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
% y( c6 \/ q. [4 }3 C
. l$ c  D  O. F$ H2 W, r! r# L0 @nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful! g: h3 d1 P/ Y4 }* p$ b# w

9 i# W2 a, D! f$ O$ C& }+ e  Q载入指定配置文件
3 F8 Z. }% D6 s, Q3 `2 y& Y0 f/ x7 t' N/ L) e
C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
/ r7 r/ }$ r: o- t3 q" j
( ]. x5 a  e2 m* [
回复

使用道具 举报

319

主题

485

回帖

3123

积分

管理员

积分
3123
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程1 \2 J  J' ]; l  D1 }. h1 Z  h
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx - H6 J1 X( T- c0 l' b* t* ?8 ]  v' i
start nginx : 启动nginx& C  k: b3 |0 B% D
nginx -s reload  :修改配置后重新加载生效! v: q% q4 B* _2 h% y/ |9 ~# v) n. S6 {
nginx -s reopen  :重新打开日志文件" k, `; Z* E& Z) G/ G! ^
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
3 y! e2 q0 \- }       关闭nginx:
  e7 |# q+ y& k0 E7 h8 H2 K nginx -s stop  :快速停止nginx0 m0 n% v4 C! Y, V4 o4 A$ M, O
nginx -s quit  :完整有序的停止nginx
2 E3 g. D1 `6 W 如果遇到报错:8 r2 P2 R" `" R8 M
bash: nginx: command not found" B% q# M3 T4 v+ G/ l
有可能是你再linux命令行环境下运行了windows命令,
( V3 j7 y# S. a8 U' r+ v 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
- U& r4 `+ s0 a4 s& b+ X 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-15 03:51 , Processed in 0.085025 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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