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

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

[复制链接]

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx3 p% m- Z$ l. B0 i
进入nginx安装目录执行5 W0 u0 P4 X  ~6 |

1 ~. |- f% {" _./sbin/nginx -c ./conf/nginx.conf) Z  j, r$ m' X) U6 Q6 U
2.验证nginx配置文件是否正确
7 \% F( W% M9 c6 c: }
( f: T9 V$ R6 _方法1. 进入nginx安装目录sbin下,输入命令# p# m: H8 p3 ?( u" f" r* j

) L; d* H" V' Q9 |./nginx -t0 n+ m8 z1 ~) V7 C
回显test is successful说明配置正确( ^5 P; |) f/ K: R; u0 w
) j; g6 ?) Z* t( m6 K
方法2. 在启动nginx命令 -c 前加 -t0 I( M& l, A1 b2 l5 K" m5 F
2 e) D1 x& j4 x7 Y. f9 N' y; I
./sbin/nginx -t -c ./conf/nginx.conf' F- X- K  v+ K
3.停止nginx
5 U4 q3 z' Q1 B方法1:  }1 E7 E6 Q$ Z) T7 _" P* X

$ E$ k/ c, J/ g' A" M; L5 u$ e0 U强制停止:
: G. {% c$ t( W) k$ g, M3 {4 s: S2 p; X8 H7 o1 w, Y
./sbin/nginx -s stop4 {' E& ^  t- @. V; o
处理完请求后停止:
/ j+ G, f1 G5 [( Z( g- u( v
8 P4 C7 w4 }) X./sbin/nginx -s quit
  u( I. o! A( `( g方法2:
0 [7 s" A1 K* T0 M
$ f* S; F( k6 Z& mps -ef|grep nginx
/ }) D# H7 q: C) d9 }$ ?找到对应的nginx进程号, @' O5 Y( d2 F$ G' i- F
# @# R& x8 T1 d; G
正常停止:
! I1 \% A& k! G* J! O8 r0 d% S) i$ q2 O& B! T1 A' T  f  n; v
kill -15 进程号5 ^5 J( Q. v8 q& K& X5 ~
强制停止:
- d& x3 Q; q9 }+ E, v5 a
4 j/ c8 }5 F- Nkill -9 进程号
! X6 T4 n6 f5 C! o& s( X4.重启新加载nginx配置文件  o) N  h# V5 {! F' K# s
方法1. 进入nginx安装目录执行
- p! M4 H) N1 R0 ^; `6 P, c- f/ ^! y  V8 c; }
./sbin/nginx -s reload
/ Z2 {3 r$ e8 b2 }% U6 l' `$ B5.重启nginx服务
3 c1 Y( X) S6 V; H( {方法1. 进入nginx安装目录执行
4 J- c, T5 M- k# y. s& c# C3 S7 |# j8 W- K2 }9 E! `! o
./sbin/nginx -s reopen
/ s7 `! K' i2 y& p 方法2.查找当前nginx的PID进程号,并kill" V" T/ A- n5 s- Y2 r7 t0 G" s

3 L$ B8 F# e8 X9 x8 H, }, t. {2 \ps -ef|grep nginx
4 W6 q, c5 |* W1 _+ J$ R1 E4 m) j找到对应的nginx进程号,进行
4 m1 A: R% \, o3 M0 E+ v6 T: Y5 P. E, v& V, }1 Z, ~
kill -HUP 进程号
7 U- }, Z* Y, l0 l' ?4 R/ k3 \  _: S  g( J0 ~
$ q+ |# g& e5 @7 o/ p  K
kill -1 进程号2 S$ r) i7 v6 o* s9 ]4 w, E
实现重启nginx服务
6 {6 Z- ]% x* _& [: X! c( S& g8 g) N% K' s8 C% d# W
6.查看nginx版本信息5 {$ n0 ~6 Q3 ~, c- X
1).只显示版本信息  r) ]8 w3 M2 r' \) Y
7 J9 ?$ ]9 M. ]" h. r2 O
进入nginx安装目录执行' W# J3 E8 s/ L

6 E! b' E/ k6 t4 u9 j1 ?, }./sbin/nginx -v
: w# }( E. _- U: ~ 2)显示版本信息和配置信息  E3 Q8 x! _7 O( C2 \

  c' h9 t8 f: I, S进入nginx安装目录执行/ f" R# v( D& d- k

3 ?; W1 F- C" H./sbin/nginx -v
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动9 B# u; r( Y5 k& Z, E
#1.直接启动
: {: X7 e5 \( v$ j) \- _#进入nginx目录,执行启动命令
+ q$ P% k" v  Q( J/ I# P" ycd /usr/local/nginx/sbin
9 Z( M& H$ i# W- e4 O. }./nginx
1 F) X1 P* P: ~7 d0 b4 E, Q# 或者直接& X; O- x0 A' b9 i
/usr/local/nginx/sbin/nginx
" }* M6 t1 h0 J) T# z! r, s#2.指定配置文件方式启动
: ^  S: C. O5 ]4 ~8 R#进入nginx目录,执行启动命令: J# P7 f2 l, Y1 N- S4 R9 p/ I
cd /usr/local/nginx/sbin6 f) C" D. b9 P
./nginx -c /usr/local/nginx/conf/nginx.conf, K, t  r" O5 z
#或者- r0 [/ d4 T6 l
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
; K! d, @/ s* U2 L3 ~* {9 L5 c
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
: @* C. E! O# j% t
; Q* o$ I3 |4 R2 v2 {  y( }; j#进入nginx目录
. l' Z* y( S! H7 E% I8 b! n. P  pcd /usr/local/nginx/sbin/ h" q  A# e$ z1 @  c# o( f& d
#检查配置文件是否有语法操作
& i9 d& G2 V8 _6 _8 m5 K./nginx -t+ `4 O# Q5 C: \6 h  J4 X
# 或者显示指定配置文件4 @$ K4 Q" @6 }: C& e
./nginx -t -c /usr/local/nginx/conf/nginx.conf
3 c" B; ^5 U! C% y
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置9 z" A* }: ^7 V. B6 s$ B
# ~. e( I7 s+ o4 V1 W- j6 s/ l8 J
#进入nginx目录+ ~  P/ p! ^4 D' c3 {
cd /usr/local/nginx/sbin
, }* x! e% c$ z- Y& L#执行重载命令) R8 ?; n4 Y" |! |2 b( h
./nginx -s reload
/ Q4 i( W& y# ~; e% l/ o; s9 U* U' q; E4 h, Z, D8 |, D1 A& `
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。! u+ B- O2 e* \1 I
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
" a. a6 K; s$ @* [3 A7 V
# W/ f( k. c' @  r' O) c$ q" [# HNginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
# s% M# l! m, B9 ^Nginx启动新的worker进程,采用新的配置文件
/ c: ^  U6 ?% _: e. R- HNginx将新的请求分配新的worker进程
% w9 ?$ R9 C: C* h8 R6 n! jNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程! h7 d8 B  Q# i- T7 }
重复上面过程,知道全部旧的worker进程都被关闭掉。
" l* F" W3 S' f6 q4 @所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx5 B. b  @, x% ~0 T

2 r7 v; j7 r: a7 ~. Q# k& r+ j#进入nginx目录
. X) X$ |' d* t4 M$ T5 ncd /usr/local/nginx/sbin7 W! D8 ]3 n; v* _/ J2 d' \, L. v2 d
# 快速停止nginx
! [: C8 j, M5 D9 ^: F3 Y./nginx -s stop
+ V7 o0 a8 `( x7 [) m# p5 o4 Y# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx: E/ @+ R" Z4 [# M
./nginx -s quit
+ q( W+ G3 t: D% X4 k5 B: w
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件9 @5 i3 X8 V% \7 P; g4 }

( d" g, G; [! R( O1 C#进入nginx目录
% q& Q2 `2 j  a# p# c7 X: hcd /usr/local/nginx/sbin
# `' r. d* O. C4 p$ _4 A$ n! P# 重新打开日志文件/ R9 e, L' c% a+ E
./nginx -s reopen
! |$ Y7 ^- n9 X
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。# E4 |4 a. i8 e
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。9 t, G3 @- q8 T
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。& i2 x  T, ?7 k/ Q0 k2 {+ e# ^
一般我们需要两步:
4 `- L" B1 b* V" }! ?( O, i+ ]: I. @% L0 g! |  X
移走文件并重命名7 n: w9 h* c" l$ s
利用 nginx 的 reopen 功能,完成新日志文件的生成。
* X- I, r( T$ `1 z* ?4 m参考地址,感谢博主分享
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
( S. ?; I, d9 S: W0 {
8 s+ k$ r1 O: r9 d+ O9 L- n# 查看进程号,下图  master的为主进程号
5 H0 E- P* M9 q" i8 g/ zps -ef | grep nginx
! d2 i/ m# N9 E7 U1 E* @0 a#从容停止Nginx7 i* m2 S6 e5 \! c! D2 p! ]$ v
kill -QUIT 主进程号4 o4 f5 G) U6 t8 }  v3 _6 u
#快速停止Nginx! o6 Z0 @7 _/ ^1 I( B1 T
kill -TERM 主进程号# Z, q( K0 f; }- Q' A4 k! W
#强制停止Nginx' \" ~* O$ l9 e! m; a
pkill -9 nginx
0 M' U! n6 i% u#平滑重启nginx:
" e( |$ |7 @" V# nkill -HUP 主进程号
1 q( u$ N* S4 S  g- P2 C
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

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

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

1、启动:
0 s' N) @8 \8 I' e' ]) i* e; V/ D6 S4 ~6 h, ]: W' M
C:\server\nginx-1.0.2>start nginx
. L# g2 _7 S0 a4 k, O
# J" W' d2 Z% s5 G+ m# O0 Z1 h; h  C" Q* z" \2 L
# J' ^  }( m" L* y
C:\server\nginx-1.0.2>nginx.exe
& ^' @* U4 Q5 E1 p1 s* Z$ |3 D+ p
) L3 [+ f6 V7 w" c" p) y注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
8 Y* ?4 v$ e' N  K2 _/ h2 M7 g% q/ o
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf! L. J6 y. f! C- D- M# ^: Y
% h, Y1 W, x5 c2 |# X& T2 z$ c% k
2、停止:
$ Z( V9 z. R+ |: C* O( Y
8 \( o. [9 B8 t4 M. L+ NC:\server\nginx-1.0.2>nginx.exe -s stop$ j+ b  n5 r) I9 d/ H2 y( Q
& a; B$ q% e* b

$ J' r" C) G/ @: w: X; F. u: T9 H- [( j! }9 x
C:\server\nginx-1.0.2>nginx.exe -s quit
( _- _" p; b- d9 W4 R8 z% a1 ^4 C! A2 q/ a) L  T( [* |3 h
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
1 e4 O; k% ^1 g# ^
7 p( h2 a* a/ K! p4 c# G$ k执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
9 q! t# C" C& \
: K% Q0 u1 P- X7 N) o* P/ `还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
% L! a' H: @) \- H& o6 p0 L" o; x6 K5 }9 A7 B8 r
taskkill /f /im nginx.exe > null 杀死nginx进程
- U% b$ C, ^7 B- W, Q/ e  C4 Z9 J) H( s) ^$ t6 r: s! D
3、重新载入Nginx:. @5 ?9 Z. e2 H# U4 z) A1 t
" L+ p4 Z) n  E
C:\server\nginx-1.0.2>nginx.exe -s reload
3 O. s! p2 H- m# p+ c! _' j' M5 G7 O1 H& N8 A, k( c- x
当配置信息修改,需要重新载入这些配置时使用此命令。
( ]0 \3 `. ]6 [; q1 {
: _3 |' j  Z0 o/ r5 b+ e3 p) X9 e8 `  G' \4、重新打开日志文件:& l, r% i( _3 ^9 F# F+ V$ c0 ]" V3 [

6 ^# d/ F0 h- f3 }& w4 Q+ SC:\server\nginx-1.0.2>nginx.exe -s reopen$ o4 o" G6 H+ `

9 {& w+ L$ M$ |' k' b+ d1 }5、查看Nginx版本:
# o# T* d; Q# j! v
* O7 P# w9 t. L! i1 yC:\server\nginx-1.0.2>nginx -v
& ?# [0 y1 K9 h+ J+ [9 x; |  y/ M2 t: S5 ^9 n8 J
nginx: nginx version: nginx/1.0.2; K2 i- Q1 G4 B4 H. H$ Y5 a
( @/ J. @: c2 t' q7 g
. L& C; M) s1 p. j/ T: T

3 D1 m/ E: N0 u' v, m, t9 x2 E% sC:\server\nginx-1.0.2>nginx -V
$ o1 W' V/ |0 Y4 Y1 m* W$ [
6 z0 R! f! t0 @nginx: nginx version: nginx/1.0.2; l8 r2 C5 c9 i" S" e! f' A# L
2 U/ y5 ^  U; u! y9 p. a
nginx: TLS SNI support enabled
0 e  l9 W0 t2 S" d/ ~! B5 {& s+ W
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) k7 H2 x$ G4 [' @* N9 T4 m
/ J, v. q/ l4 g
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
. L0 I) ?+ a, j* r  P# z! S# X+ \$ A+ I# ^

0 o0 ^1 _5 g5 O3 u1 ^" m6、测试或载入指定配置文件:
1 f# `- O4 x4 M0 E1 Y* @+ d
9 {& ?! Y. }, G# Y9 a. `7 [" [注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
5 j+ r& r0 v- Q" }/ O# V3 G$ ]' \% L1 K6 J0 i0 j( S1 P" |/ S) @
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf) j5 F$ I' Y) m$ H7 s

) l/ s# C& l# U% X7 U. O: c0 }6 wnginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok! i& X; j, m1 X7 y" a( y
# B% A/ c$ Y& R- E2 p, S3 Z- s  J
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful6 D/ S  F0 d* g: T3 B: y4 E

. f3 W" z8 ]1 D" p: \' r载入指定配置文件" U. @- ~, l5 U1 O+ K& B! O

( b1 f0 k7 r7 u- f* _9 pC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf+ U5 c9 c' |: r$ q( s1 S( f* J$ ]

' b9 c, p/ d& R
回复

使用道具 举报

328

主题

499

回帖

3262

积分

管理员

积分
3262
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
7 G, o0 ]7 v. U/ l' h 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx 0 `0 I- }0 D9 {& A" Z- Z6 V6 C
start nginx : 启动nginx+ t- b( m; W' \: M$ z$ K
nginx -s reload  :修改配置后重新加载生效! l3 [# |0 D! I, X/ u" Y
nginx -s reopen  :重新打开日志文件
; B* z& ]. Q; x2 _) }, w6 i, x nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
$ k6 T: j  i$ W3 C* |% W( e- n3 j       关闭nginx:
" a7 z: t+ v* Y6 L3 Z( c4 j% r' P nginx -s stop  :快速停止nginx0 U0 r* E* n: |! q% @, C
nginx -s quit  :完整有序的停止nginx
5 R' m' y9 F/ E+ ] 如果遇到报错:
0 d: M5 A( @! x0 e- D" k7 W bash: nginx: command not found% ?0 j5 l3 C  W9 X
有可能是你再linux命令行环境下运行了windows命令,4 B6 Q* ~+ A4 g! I
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload6 x/ I9 B/ Y" w; K2 V# s: V9 B6 k
或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 09:16 , Processed in 0.087595 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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