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

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

[复制链接]

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx
2 [% O( }, W, g2 F. v* S进入nginx安装目录执行
4 ~7 q6 d1 R/ s+ Z3 }4 p& [9 p/ u8 u- b$ V  Q8 ?
./sbin/nginx -c ./conf/nginx.conf3 b5 {& P8 M# D  R
2.验证nginx配置文件是否正确$ n, ^4 K% [- t1 c
1 @1 r; J, ^% V3 f/ T
方法1. 进入nginx安装目录sbin下,输入命令0 C3 H1 c! P6 o/ G
: z- {2 ^' I6 I' I# c+ B: J& r! v
./nginx -t
, Y9 @$ E5 U8 ^7 `7 s回显test is successful说明配置正确. L1 Y. M1 d! y) w1 h/ h) I
" U8 K; H$ f8 e& N
方法2. 在启动nginx命令 -c 前加 -t; q% ?; A$ q* q9 \
! g; @5 P" _" X5 g3 f- k6 i( u
./sbin/nginx -t -c ./conf/nginx.conf
" d4 W/ Z: e8 J- L. J3.停止nginx
" E, Q" m- r9 H7 p4 w1 Y/ _方法1:; a# ~- X( |  D, ~
3 E5 r, q! l8 ^
强制停止:: h- p' \! H7 e1 W9 y, Z: J
" m8 E6 k6 V% k; x
./sbin/nginx -s stop
1 K* o& D4 z$ F处理完请求后停止:% u* B$ I! z0 o" H6 g3 P

# f8 L5 N* J/ c" e/ }' X* E./sbin/nginx -s quit
  F3 g; @4 E+ B方法2:
* ?: z+ w# n, w3 Q9 R
- S8 I2 h- i2 r5 w4 l% ?ps -ef|grep nginx+ i& s1 ?  d- e4 v
找到对应的nginx进程号' ?2 P& |4 V! L0 I- i/ K9 z' t

  @4 G' C* j) P- {  V正常停止:( }6 ]0 t: V# F! K" K

% `, q- H& _  [$ l+ ykill -15 进程号
' q1 E7 r. R/ v  [, s' T# k强制停止:
1 m9 N& f8 M8 r9 l3 i# S3 ?% K; Z+ M1 {& F0 Z, k2 P
kill -9 进程号8 Z$ ^7 H7 W! \" q
4.重启新加载nginx配置文件
# f# z! l9 q5 O方法1. 进入nginx安装目录执行
/ m2 ~% G8 w" S1 |
8 K  U$ e9 j, R: @./sbin/nginx -s reload
" f! J% v* T6 C9 Z3 d5.重启nginx服务8 {2 L0 @5 R7 _4 [
方法1. 进入nginx安装目录执行% A; J( y- `5 w$ E7 c2 v, O- a

1 l$ [8 c' e/ |. V. Q9 C& Q./sbin/nginx -s reopen% z# h# D% Y4 L7 K. E4 P
方法2.查找当前nginx的PID进程号,并kill
5 |/ T. m2 c( j" C2 w- i9 t* H  T% k5 j8 x7 V; ?2 }$ O1 Z. l
ps -ef|grep nginx+ f8 U$ N1 i7 \) ]9 a) m/ i
找到对应的nginx进程号,进行3 J# [2 {6 |, A9 d

2 ^8 B  J2 M  S: Okill -HUP 进程号
/ @* U  z9 u/ F3 {$ w' v% {. u7 A6 C8 T3 W
' s8 w$ X: w" P7 ~! ^7 F; V
kill -1 进程号
+ Q. n7 V+ L: e1 f" s" r2 e0 J2 a0 l实现重启nginx服务) F: X! w: O2 O8 q. S
* c% w; A/ u2 ^' B& S3 G
6.查看nginx版本信息
7 M( t! c6 ~# P; a" R1).只显示版本信息- }* G6 Q$ ?6 \" d

, n7 p% Y/ f# [, t1 I) Z进入nginx安装目录执行
$ ~, D! R" b  ?5 ]7 V; w
* e4 N+ U1 M, n3 J4 u2 L/ a./sbin/nginx -v
5 y* u+ U& e6 `/ u; z/ X 2)显示版本信息和配置信息
1 p5 c! _7 ^( n* a) P7 U, h
: }8 J: B: j: O7 x  X进入nginx安装目录执行% m( z0 _9 K6 z; _' N
' ^5 G0 [8 u' @" r" o
./sbin/nginx -v
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动  s; O5 l0 W: [8 D/ O
#1.直接启动# W+ O9 L& t% M; N
#进入nginx目录,执行启动命令3 s7 R! f; L/ ]! q4 i: j- ^& V4 o
cd /usr/local/nginx/sbin! F5 ]4 T5 X: Z% W) R( L! S
./nginx
3 L/ i$ }; o5 i) w  Z6 V. Y# 或者直接
$ V: Q( U* l- E% h/usr/local/nginx/sbin/nginx
' b! N/ s7 V/ X  h8 A  m#2.指定配置文件方式启动
, D1 \& f( y% \#进入nginx目录,执行启动命令( c* h9 K2 w/ @
cd /usr/local/nginx/sbin
+ Y5 Z( `) ?, {. E./nginx -c /usr/local/nginx/conf/nginx.conf+ U# O9 Z9 k; N1 E
#或者/ }0 y/ E1 f3 f  E) L9 Q6 T, T& H
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
$ E, ]* K# v2 E4 q" x- M2 ~1 y2 a
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
( V: Z) W- Z' ~4 W& r* k2 k
/ L/ c, P9 g' f( o: x: o#进入nginx目录
( d! C( d5 a. ]- E9 Pcd /usr/local/nginx/sbin
& l: `1 f5 U2 O" O9 d, E, \' w6 }#检查配置文件是否有语法操作
- V) R( @  `9 n/ L* B# Z./nginx -t: A1 m, O( r; V) [/ j
# 或者显示指定配置文件! ^  y" @( d% d
./nginx -t -c /usr/local/nginx/conf/nginx.conf# }/ w' L! M; _/ E. f
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置7 }" O5 K1 x7 }  z: B1 O+ K

( |& ^& `5 T" h: g, G#进入nginx目录8 T$ }" }3 b/ D7 @
cd /usr/local/nginx/sbin
% b  `# s6 j* K: H3 q#执行重载命令
5 z+ ]4 @& |& c- L% L./nginx -s reload) w# k9 o! U* l) P% P6 ]" C

5 B( F& ]' Y- Bnginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。% w* L" z! n4 y& p
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件8 t# z  m( ^/ M

' n7 q& @8 [4 u9 a0 o; B: a2 ?Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
9 T  l) t: p4 d7 F# C. Q" qNginx启动新的worker进程,采用新的配置文件/ s3 m( ]' y! r. H* ~4 I( b( Y
Nginx将新的请求分配新的worker进程. {! B2 ]6 @" b/ v/ V9 I& F
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程! B3 X' B! S) `- A3 D: l5 X9 d# T
重复上面过程,知道全部旧的worker进程都被关闭掉。0 L% h% Z3 j# n4 `1 x. Q8 C
所以,重启之后,master的进程号不变,worker的进程号会改变。
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
. c3 U! D9 i4 A+ _5 Q
/ g: w; t4 h! A* g- _) X#进入nginx目录
* p% K% E* R" T% i' ycd /usr/local/nginx/sbin! d8 [/ o5 N. [! w- `7 t  k
# 快速停止nginx6 o& A0 y+ @. S" W# X
./nginx -s stop
3 O. @7 T' H: c0 o; A2 i( d# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx8 d" j; ^7 z  J, B
./nginx -s quit" p) W; a5 p% \! J) e2 Q  O
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件- q) [# S* b6 c- _
) w2 [2 m  ]; e
#进入nginx目录; |4 V& z) @) j# H- {& p0 _
cd /usr/local/nginx/sbin' ~( J2 a& ~, l- E6 U$ \4 j
# 重新打开日志文件$ X, ^: w" ?/ B- a0 D# ^; t" q
./nginx -s reopen
: M7 W4 H! C3 b& H; |, C
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
) d! J) l- e: |( f' K9 r当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
. q7 z  w* u* }0 c9 S但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。& F* u; T& y, q- ]" u& v* F
一般我们需要两步:+ a+ W) Q/ i+ s0 L" K* ?& D

" _' o. }. \' z( P- d移走文件并重命名
, d7 T1 e3 b6 ?: b利用 nginx 的 reopen 功能,完成新日志文件的生成。
( H3 s9 b" v& U2 X9 `. E, {参考地址,感谢博主分享
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx) y0 m* h# I$ e

% N1 }1 e4 Z; _/ ]) W# 查看进程号,下图  master的为主进程号
( c% ^9 I: q# d* ips -ef | grep nginx, A& Y" y: E" N% K1 M
#从容停止Nginx
4 e5 b2 V" T6 l! l: m- Q+ @kill -QUIT 主进程号4 {8 Z) W$ \7 R2 a0 Q7 B9 Y
#快速停止Nginx% P2 W! }% C4 p" j2 y- J
kill -TERM 主进程号
/ j. v/ R8 T/ s# J#强制停止Nginx' o' \* h7 x. S) Y& S4 D# I
pkill -9 nginx# v0 w' o# D, w: k, l3 i
#平滑重启nginx:
0 I- r) M* [, x$ I; J- }. Q- \" Tkill -HUP 主进程号6 a, [2 \) ]' e# s9 [7 G' s
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

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

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

1、启动:" s/ U, ]# w9 K9 v
5 a: |5 B; z9 o5 f
C:\server\nginx-1.0.2>start nginx
. ^4 J/ D9 {( A: X4 S
2 G' r8 E% w4 a: }2 d
! g0 J7 J6 n$ b2 M" K2 z% h
2 `/ |/ u& P7 W. F9 M9 fC:\server\nginx-1.0.2>nginx.exe% ?; L. \" |+ v- P3 t! s- k

- t* g0 K% L3 J8 F/ J7 h. J+ `1 c7 d注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。) E4 g2 R* H" H. J1 R4 g

* W* G- A& |% _; f/ w2 c如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf( x' X. B! ~% k8 H% e

0 p. ^7 U1 z& s& H, t2、停止:
% G5 v, c1 D; x" {7 w1 e" x3 t3 y7 b  H6 {0 T  k
C:\server\nginx-1.0.2>nginx.exe -s stop# b7 ?8 a9 J7 l% ~+ u0 u& Z

& z+ V) G* [# A/ m+ G0 }; K% W8 K) u  L0 R/ g" Y: X, |
' ?7 |1 Q% ]4 m# F4 R4 h) k1 x
C:\server\nginx-1.0.2>nginx.exe -s quit8 U% F5 i2 d) Z# m* w4 Y( }0 H% A
. Y" p5 [1 |. M8 f' C
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
; G# U7 t( j3 N- k: U, }# F1 H
- D, v+ y6 x7 o+ u( G! e执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
* _" F$ g% e6 Q1 x
5 U2 R$ {5 `0 r还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用5 ~% l9 H/ K+ x; ^  I4 j. k- C

; h' J& H7 j: t# Dtaskkill /f /im nginx.exe > null 杀死nginx进程3 ^$ J0 K! q, I. w: |
1 P/ y0 H* s; N1 g" s- A8 g
3、重新载入Nginx:5 i9 ?; Q% Y: F! }" F- K7 _
7 M/ H6 Z( Y7 ]' y0 P
C:\server\nginx-1.0.2>nginx.exe -s reload
2 d. F# I& S2 G" |0 @; U2 {2 l5 J1 L( A3 m8 x! u
当配置信息修改,需要重新载入这些配置时使用此命令。  b# g& d3 c+ X. J. w% }
0 ?6 n; f; N$ v" ?+ X1 w0 m( y4 {
4、重新打开日志文件:
9 B6 B# }& `7 L8 s' F0 Y" Y2 }+ W8 W% w# B9 b6 T
C:\server\nginx-1.0.2>nginx.exe -s reopen5 a" t5 m0 m5 O; m2 v) R& P

7 V' x; u6 @" ~" k% Y9 u5、查看Nginx版本:
& o2 J% |: Y0 V: C0 U# S" Z2 I& O: A- E
C:\server\nginx-1.0.2>nginx -v
; ^4 v& R0 \3 l2 s9 g3 K: j: G" U; N7 n1 x, \5 s
nginx: nginx version: nginx/1.0.2
! a4 ]3 `% i( o7 P& }5 a2 M+ }6 t( e, C& j. E: m, ?( A7 [8 K) k
9 B: h! h' ]- v1 @
2 N# h% R# J" ^7 R, b
C:\server\nginx-1.0.2>nginx -V
0 k. Z; ^; Q! S9 O$ d9 I$ z- k1 q! s. S6 W4 \% `) r* h3 W( V
nginx: nginx version: nginx/1.0.2$ M+ t: B8 a6 u

( w8 }, M) e! ~0 M8 {. `- ?( I# X! lnginx: TLS SNI support enabled
7 ^7 ]7 A% J' c# e8 P' \& S) |  o6 _; ^7 q6 E, w. 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
3 N4 l6 N  @+ p" f! W" H  c- _8 }) Y( n5 p; g7 g( I/ E$ s
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。- m( w' z% S5 m2 |

& }6 V1 e) L) w, m, n4 \8 E/ D+ f4 q
6、测试或载入指定配置文件:
/ o) d& ]% r1 I; u/ N, u7 O- H( F6 Y7 X. x- g7 |  G3 J% X
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:, J& v7 P1 Z. n
4 |+ ?% P0 ^3 G: l4 t( Z
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf' N$ p# s, m, ]. c
: \# _, O* \2 y6 L' J: V1 x
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok0 s1 y! Y+ a/ P: P
3 m6 p; |  u$ T
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
  @5 w& r7 n5 ^/ H+ r) C5 }' e3 y  K4 F  }
载入指定配置文件
' U  B; q  ]! l5 p# e" c7 Q) G5 x3 h% n! \% j2 z5 ?7 t
C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf1 a* _7 F1 w; _5 ]4 G- R
- z2 s  ]' R+ U! K  N2 N
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程' h* o4 U  a9 K+ ^1 w& e! }
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
  N+ W0 M# D: i2 v/ h! v" d: k start nginx : 启动nginx% R% o& ?, T6 `7 C8 h# Z
nginx -s reload  :修改配置后重新加载生效) U( Y- F3 c$ `' v8 D  w0 |% y
nginx -s reopen  :重新打开日志文件
, ]; U/ }2 w( h. {1 G nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确( E$ V' ?2 ^7 [5 w
       关闭nginx:
( q' W: m! k. _+ R5 ? nginx -s stop  :快速停止nginx
+ O) ]9 K& W4 O- Y# q nginx -s quit  :完整有序的停止nginx
) p  O4 A/ T  D& M% X3 I2 h1 W 如果遇到报错:
, {" ^0 z: `* q! V* H2 s% O$ c" O bash: nginx: command not found, j# |, M, S* T; G9 C- o
有可能是你再linux命令行环境下运行了windows命令,
% V: }. p$ k  w- y7 Q7 v 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload  @; _% @% g! b; }5 \* ~& n- t
或者 用windows系统自带命令行工具运行
欢迎定制:13928122889
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-18 19:49 , Processed in 0.022225 second(s), 3 queries , Redis On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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