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

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

[复制链接]

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx5 b4 Y% W! l9 @% Z1 d" ^! h$ P
进入nginx安装目录执行
8 ~; v. S4 u: B4 O' F
/ n0 j; n' `% n7 t$ d* Y! R./sbin/nginx -c ./conf/nginx.conf) M0 `+ W3 [3 n8 G
2.验证nginx配置文件是否正确* a- o( o' l8 _; j3 g5 j
, ]3 C) V$ C) H7 Y" S
方法1. 进入nginx安装目录sbin下,输入命令# c% [3 A/ D* D6 V2 D) {' u
4 a5 ~$ c' m& c; c
./nginx -t# @4 ^0 r+ Z8 F$ i; C
回显test is successful说明配置正确7 K9 c; z( ^9 [3 E; C5 \3 x% Q( p
; @# [* G! C7 t8 e+ [4 D( f- E
方法2. 在启动nginx命令 -c 前加 -t
5 d* Q& \  L; D* m
; w$ M2 F" M% |9 }6 V7 i./sbin/nginx -t -c ./conf/nginx.conf: H" {% F$ a+ r" g' s: O1 U* X8 K; k- U
3.停止nginx: m( A8 X. X' A4 h/ m
方法1:+ x- A3 f  b+ y: d* S4 o! A8 ?8 l

1 y9 a! F4 O7 T5 [: K强制停止:7 z8 |, C" a, E8 Y4 e# i
9 O1 L' f1 g# G; P/ f- N1 f+ {
./sbin/nginx -s stop
; s& n" M' y% a处理完请求后停止:/ e7 A' H* T5 y! ^- e
' p" Q; ~2 B& [9 T
./sbin/nginx -s quit
" Q) V  y5 O; g3 Q' O( P方法2:
" [% |- n% K, L2 t% n) ~' A4 ]9 s1 o4 V. ]9 S9 v" K) b0 L
ps -ef|grep nginx
" ^9 R' w! V( U# s1 v* \找到对应的nginx进程号
, J) S# f0 t) g2 }$ U5 f& W; y# `. `) z" D9 R& G6 X( B6 n
正常停止:
  L$ m% L" Z+ n; ~! R9 E( [" J3 X  x/ F" O/ J8 U1 o
kill -15 进程号
9 [- J7 P/ \5 C+ O- t4 q强制停止:( m4 I+ \. \0 q- s

. P: ?% {# ^4 }, {3 v6 }kill -9 进程号
! [0 d) Z. p) V# `5 D9 j/ ?4.重启新加载nginx配置文件
4 b! G  ]" W- Z4 R方法1. 进入nginx安装目录执行, w! c! t6 g( V% `

* E( g: R8 o' @./sbin/nginx -s reload" O( X; ?1 k  ]5 _& s2 m# d5 I8 l3 N
5.重启nginx服务  e% c: Z, c6 E3 `! S
方法1. 进入nginx安装目录执行' W5 O, g5 L9 x1 z3 p7 E+ N9 l0 m
- f$ @' r) D: t4 B( c
./sbin/nginx -s reopen  U3 Y) @1 u6 X4 Y+ E
方法2.查找当前nginx的PID进程号,并kill
4 N. @8 k* @/ t. P1 z
& U0 R2 J2 B+ ~  e( ?: Y5 I! zps -ef|grep nginx9 I# Y' v3 u5 _1 x
找到对应的nginx进程号,进行& ^1 o) B) J5 u. G3 R( |* v
" r6 @4 g6 w6 v: J& v0 ?
kill -HUP 进程号9 K! A6 U  F% o& I  D. _
5 h" Q1 C" K# f: s+ T0 \+ o+ x
/ f3 p$ v/ L9 N6 m# O$ a6 o
kill -1 进程号
# m9 `  |/ Z5 j: @' O2 c' f. s实现重启nginx服务' T. M: S0 M3 ~% V9 I7 E6 m
; o/ b9 @0 v) l: N
6.查看nginx版本信息% `) A: q' N0 d  m/ N) t1 r
1).只显示版本信息
% K7 M) ~6 b" S9 B( e; M2 K2 c2 D! q: [+ Q2 {
进入nginx安装目录执行
: |9 u) H; o- u. f) r$ _' N% Z* }. C! F0 o  o* q
./sbin/nginx -v
1 P7 e- O, t; e4 S( { 2)显示版本信息和配置信息
$ A( h, S, ]) C/ v( c- }! ^* w, W
, {/ d$ b8 O5 x7 ^8 z! I进入nginx安装目录执行
7 p* b9 n) I+ h, L5 V  v0 A" V) ?) z1 ^8 S( G/ @0 g
./sbin/nginx -v
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
- U8 t4 s+ Y( @) N8 \  I#1.直接启动5 q  V( w6 p" f+ c6 c$ {0 {% a
#进入nginx目录,执行启动命令
* Z$ Y% K& l4 _4 Z: O2 Wcd /usr/local/nginx/sbin
* b' H% W) a+ {1 i. {* r./nginx
, x; m5 ~8 N/ C5 z5 ~$ f7 C# 或者直接
2 I" C% l0 c4 l' a( ?  q/usr/local/nginx/sbin/nginx' q' h( X2 {( F  S$ F* {
#2.指定配置文件方式启动, ?  c8 E, t: I+ p' z) B0 `9 s
#进入nginx目录,执行启动命令
% x3 a% P0 F- g& W) U# s  P( ~: Zcd /usr/local/nginx/sbin
6 S- Y- Q, d8 [& b7 r" s./nginx -c /usr/local/nginx/conf/nginx.conf
+ o- j6 P4 @" ?9 T#或者
7 o3 n1 p/ }1 m( h8 J/ B9 b3 B' s/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf* B# T( n: s6 N' E
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件$ y% q( F6 {! B) ^4 y2 I4 j" e& u

$ `8 c; v" ^3 z, ]/ p5 e- y& I! C#进入nginx目录
! M, `( Z: `7 e# A; Gcd /usr/local/nginx/sbin$ r2 `/ F$ E  l" D
#检查配置文件是否有语法操作
. x* u+ \9 A6 F* N8 Y( i. p./nginx -t
* i4 e& _) P7 ^5 `2 |. W! Q5 `" g# 或者显示指定配置文件8 b$ i3 y7 T% x6 I
./nginx -t -c /usr/local/nginx/conf/nginx.conf
3 z3 G- S4 z( e- O
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
% |7 n3 m" Y( G! T1 j; E3 y* v' i# U
#进入nginx目录
0 m0 o$ g, {' i! u; o4 `cd /usr/local/nginx/sbin
% B& D5 ^$ d9 |' A2 h, j5 A$ ^. w#执行重载命令
& \8 \  L$ z5 o- ~& G./nginx -s reload: [' `4 L/ ~9 V5 y/ l

* D: f& W' E! d7 M( unginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。1 [& D2 _5 R* D5 o; z
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
, F5 J6 @' p, k% ?( d, v. T% F4 i2 {( l8 R5 R; y- M
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)# R2 V* z1 E' @7 G8 R' ~, r
Nginx启动新的worker进程,采用新的配置文件
$ M' E# g$ }3 {+ oNginx将新的请求分配新的worker进程
2 z% P/ C& \- F, H8 p  ANginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
1 J, j. F* V- c9 u3 C重复上面过程,知道全部旧的worker进程都被关闭掉。. a% L4 d: l2 z) L: r
所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx8 E- i8 [/ Q9 x4 E& q1 o* k- ]" a
4 m! N  u) n: r2 u. f" J
#进入nginx目录4 @% @* G* O/ w0 f. O8 Z
cd /usr/local/nginx/sbin
8 J0 M  @" R3 S  M( ?# 快速停止nginx/ B+ \! s, C2 {( ^8 F4 V/ E. S
./nginx -s stop# N7 ^- @1 f( o% S$ Y. }: B
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
" _; t2 `; W1 `) a2 B& V+ X7 j./nginx -s quit
8 [4 J& F! }/ m; `( c
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件
9 @& T# c; B1 ^) u& Y$ Q2 j4 z; }
#进入nginx目录
+ q! i% N, V6 a4 O* O/ l$ U3 ~5 F7 E5 acd /usr/local/nginx/sbin; l* D$ [5 d8 a; Y% N* @& Z
# 重新打开日志文件) j& d7 y8 u8 k- U  i! g1 E9 d
./nginx -s reopen
) H, y) W6 m/ P# ~$ F$ H6 k3 B1 o
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。" E% T4 s2 Q- d! m& w0 W1 G
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
5 R! w" J6 C) g- ?! ^9 H3 n但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。- V# F2 z- ]  n4 o7 c8 h
一般我们需要两步:  k& c. ~( T; i% s+ C
/ i4 I& p$ x/ k- Q
移走文件并重命名
, z% F' [% A4 {! L2 M7 x利用 nginx 的 reopen 功能,完成新日志文件的生成。
" e: N0 j4 Z4 m9 X2 d参考地址,感谢博主分享
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx$ F. A7 S6 Q9 G( k# h/ d- m
9 P# Q8 R! M9 G
# 查看进程号,下图  master的为主进程号9 Y* P2 |  ?, z2 C: S- [+ H0 n& e
ps -ef | grep nginx
' f( k  B5 ~4 y1 z- X#从容停止Nginx
& h! O/ j) U  [8 W% Q: @kill -QUIT 主进程号
+ ?6 @$ ^% F1 j5 g/ s* m! s8 K#快速停止Nginx
3 c! m5 m7 f; o0 e2 n" G5 kkill -TERM 主进程号
& ]/ @0 s( b8 U( u) b#强制停止Nginx
  M: N4 C3 ]& D3 f3 e; Xpkill -9 nginx
/ ~3 h6 i& w. O3 Z7 o8 v$ r; O% a#平滑重启nginx:. V' U3 s. J" y. ?2 a; x1 O
kill -HUP 主进程号
# b' i, j  B4 M
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

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

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

1、启动:" b, n! W7 T: c

' O& i0 o2 v2 c4 ^C:\server\nginx-1.0.2>start nginx
: G. \% Z! [- r- `
' i2 Z0 [! Z2 ]) ]- u% f. M; J6 P  p7 _. O: E2 ^9 Y
: o  l" C: \" T: w7 [
C:\server\nginx-1.0.2>nginx.exe
1 D" ?1 d: i- H5 h* O+ y5 }. g" I# p7 j+ k" e4 D: T+ P
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。4 |0 a3 w- V. s

! f" D4 ]0 E( w2 f, V如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf  @) N2 }3 j6 J) j1 v

$ w, G4 J' g3 W% q0 X9 a2 t3 L2、停止:% x) V. s, m, N9 t# I8 r! @
+ V3 ^9 B: z- T0 L$ U# E1 S4 X
C:\server\nginx-1.0.2>nginx.exe -s stop$ T6 x4 k: L, Q, e/ ^: ~6 ?
  _5 l9 P0 x8 R3 A5 l9 k

3 z+ Z* S! n+ ?" m9 O# q
2 _" f; y% x9 _) BC:\server\nginx-1.0.2>nginx.exe -s quit+ Z1 S% O* F2 A  v9 Z0 }

2 G' U; ]  }! _0 }+ `: W2 {2 @' a注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。2 [  Z( s! b, x; H

6 C  N( N& }( c8 D* P+ ~执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
  c+ q3 y+ S. h8 x) Q" |, D
4 U$ W6 X/ a' C  H, M" I还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用" ]$ S8 y* v; [4 Z2 c

3 V2 Q, F2 H& \/ t# t( p- otaskkill /f /im nginx.exe > null 杀死nginx进程
8 g* D4 N' ~8 a
- y% |* B9 M+ b7 X, M! y9 a3、重新载入Nginx:
* c+ T2 a& O0 p. Y: F: l3 R/ G/ s% |: v; h
C:\server\nginx-1.0.2>nginx.exe -s reload
2 W" ^% ?- J. X7 T- P4 j7 T) D& q1 a
当配置信息修改,需要重新载入这些配置时使用此命令。
4 W$ d6 k4 u2 p- q* i( q6 O; f2 ^& [( `4 D  I0 F) l
4、重新打开日志文件:1 @) D  |3 i3 I( i' B
0 v0 j4 `+ \. {
C:\server\nginx-1.0.2>nginx.exe -s reopen
5 O  L$ `+ o3 R: d
; u( t, N5 k' n; J: o$ K5、查看Nginx版本:6 Z* I# W) R& |' e6 H% r9 t
( T9 j. s+ _- o: J/ K
C:\server\nginx-1.0.2>nginx -v9 f3 |4 E- g' Y2 W* o
$ a3 h4 \$ T0 ]: P5 F3 U2 `' \
nginx: nginx version: nginx/1.0.2
# B5 {8 |* B* h# u! w! x* F4 L
2 i% E1 \& _* M6 s7 A# M3 z8 y" X8 ]2 m2 i1 j! a

3 H2 f* _& U3 F7 SC:\server\nginx-1.0.2>nginx -V
  G  Z& G* z+ I% b7 }1 t
5 T, f3 e) `; s! e8 Unginx: nginx version: nginx/1.0.22 i5 T  G& g8 Z: O# w

& y5 V5 I4 s6 L  G1 j( z7 bnginx: TLS SNI support enabled
' Z9 e' I9 r4 |! G) s5 u
- f; ]- b6 w$ A; g& v3 L& vnginx: 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
3 c9 J! H; A2 P6 T9 N3 @6 @1 p1 U. f  G$ ]; p
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
( i- `) x# c. j" I2 O5 k% T
- q/ q, O. S7 ?2 ]! C  C1 M9 ^% }7 t7 \. {6 x1 f5 N* ?' q
6、测试或载入指定配置文件:
" A" N2 s/ m, L0 F' ~
+ @% F( O' m) v5 F  r7 [注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:8 P/ B6 R+ E6 Z- P0 {5 L

. T) n& O( A$ p# j( AC:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
1 H2 W; u% `2 s' e
* @6 l$ Y$ j2 _; wnginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok, x9 w/ q4 ~" `4 D) ]1 A' v" g
  u( N8 U4 \$ X# A8 n
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
  e/ M) Z1 m& U! h9 h& z. `7 U9 ~- ~' O6 a9 P; `- T8 V
载入指定配置文件' }  U- @' }, H* y9 Q
$ A  P% m8 `8 w, Z
C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf, u8 z5 {  R4 i% v. n' {6 K/ G8 Y# r
; |! r# I' L: I" X* j
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
& C; D7 Q7 E$ g, B# q: n 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx 0 |6 X1 W, L1 i$ k$ `0 y. y8 |
start nginx : 启动nginx
! N6 ~% S7 k' s$ U* M nginx -s reload  :修改配置后重新加载生效
& E4 [7 O; T  p7 P3 A2 E. T nginx -s reopen  :重新打开日志文件
7 Y5 z. S. M( Z* d nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
/ s$ c) Q' W% |& Z! w4 ~) g( Z       关闭nginx:% A/ O( C: d7 J4 D. t# t  |# \
nginx -s stop  :快速停止nginx# F( [# e% P1 o( a/ {2 ^
nginx -s quit  :完整有序的停止nginx; K2 k* f7 |1 E$ m: \" t
如果遇到报错:4 \0 O) U( g+ f: p  v' {3 g
bash: nginx: command not found
$ _" ~: d: @% o, G7 N 有可能是你再linux命令行环境下运行了windows命令,  f/ ]; ]+ w- X$ s% u
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
1 K8 _7 S* P% C( S 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|通达创业无忧交流社区 ( 粤ICP备2023021749号|粤公网安备 44030402006137号 )

GMT+8, 2026-4-10 06:21 , Processed in 0.530819 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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