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

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

[复制链接]

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx, |; f+ |5 p: C1 i8 b# [/ N9 f
进入nginx安装目录执行9 S; N4 i5 D* C  M6 a& e3 P! c9 S

* z# ?" ?3 a4 R' C% E./sbin/nginx -c ./conf/nginx.conf
1 ~+ }5 {: `& d$ j 2.验证nginx配置文件是否正确& u. x+ x2 C- j3 P

! m0 k* B! P! _3 k7 z* A方法1. 进入nginx安装目录sbin下,输入命令. b# E' O* F, s. n' t8 j8 B& d5 s& Z1 Y
7 q9 t) B1 u% w1 u3 D8 a0 y  R1 z
./nginx -t4 v  f- o7 Z- y! S( R; L
回显test is successful说明配置正确
+ Z; J5 p8 ]1 D: V: N' z' o
' r+ o# j: k$ B$ U) B方法2. 在启动nginx命令 -c 前加 -t
' C9 |% t3 \" o2 N& z; ?9 s3 d6 {8 i" T3 N- S1 |  Q  D+ S
./sbin/nginx -t -c ./conf/nginx.conf
& ^0 _9 q  R+ L  e5 h3.停止nginx
0 R2 X) p& s, b0 d5 ~方法1:
2 R$ o. S/ J  I4 D8 p1 @: \' L! L: a' L3 o6 S! p4 `
强制停止:  V8 n7 G! _! Z

+ d' R! K1 n4 l" B/ U  N./sbin/nginx -s stop
: [& I6 Q9 F& o7 ~( C处理完请求后停止:2 }, C1 t) n+ t# A! B6 X

* ^+ j) M# A" |! y, B' O./sbin/nginx -s quit
/ T+ |! [# X5 {& l& M& Z6 }方法2:
7 V& g) O7 z  S" h2 n: b' g1 P& F4 G/ U( Z9 x7 A
ps -ef|grep nginx+ B% ]* ^; q" i# F
找到对应的nginx进程号
! H# @9 U0 v3 O* b' _3 t
& A: s7 G# [* w1 e) G5 ?: `正常停止:7 w3 j. s) h3 {" S0 G
7 d% V# u2 |. j- A% G" D
kill -15 进程号
& U8 c; b8 {5 J/ |; c% m7 Y强制停止:
3 K3 _: G( }; L9 ]# q0 L2 x+ o2 B% l" r8 U& T: g6 Z8 \: x
kill -9 进程号
7 ?5 E+ s) ~; q" U4.重启新加载nginx配置文件
' y  j9 L8 k8 I7 c方法1. 进入nginx安装目录执行
& ?! ~, F# R; P, C4 u4 z' l
5 O# e6 C2 S6 k7 a4 q5 h./sbin/nginx -s reload
# R6 u* [9 @1 `+ c* g: ^# d5.重启nginx服务
/ d3 _6 Y4 v$ X* Y' M" X方法1. 进入nginx安装目录执行
7 ?( h2 R  V1 ]! G2 H/ z3 `* H. j+ V
" c0 F' A: D8 M& V. d./sbin/nginx -s reopen! p* l& ~0 k% h5 v  u. {8 `7 h
方法2.查找当前nginx的PID进程号,并kill
2 s" ?: B6 X) p0 r% E4 U- M" Z- R- {9 z
ps -ef|grep nginx
0 }/ V( x  v+ a. W; I9 Z4 x. a' R找到对应的nginx进程号,进行
: J2 P; V# G# v/ |, z6 y# d% H8 z! I( q
kill -HUP 进程号
5 v# F- J5 \( Q  y
+ n7 W  g  N" O1 O4 @* j! U3 q  B( @% R4 P5 |9 E: ?' N, ~5 Z
kill -1 进程号
6 y% {% g; F* g实现重启nginx服务
. x0 H: E9 v* z+ Q7 }: T( m2 H9 A7 Q+ {; G: p  M# b1 N0 O1 K( _4 ^
6.查看nginx版本信息
8 t" A  C0 B* h& S) n: R' _1).只显示版本信息
5 U! Z( u2 \* C/ d' c# W: F, d, i# P8 Y1 d" n
进入nginx安装目录执行( Q$ i+ z  d$ W% X* R; g

; N# L  N! h( W5 P) Q6 g: h: Y  R# D./sbin/nginx -v
) d0 x8 A3 U/ C" k 2)显示版本信息和配置信息, v( c; T; a5 C3 F

. D7 O0 }* O( N' w" _7 d进入nginx安装目录执行* d6 u2 X7 _* M' h& j- R

" d5 B+ p3 v0 m1 `! [./sbin/nginx -v
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动3 a+ w% f' R8 H' z! _
#1.直接启动
5 E2 a: i7 M. b2 D; W#进入nginx目录,执行启动命令
( P& G+ a3 i0 U3 qcd /usr/local/nginx/sbin
# O" D, P" f& @./nginx
" r- r( s+ I5 Z# v8 p, \* \# 或者直接
$ I# E4 F( b8 V  V$ s/usr/local/nginx/sbin/nginx# L2 Z, q4 n0 ^% g
#2.指定配置文件方式启动
& p! d% n5 r# J) k, u#进入nginx目录,执行启动命令
6 d* v0 _8 V0 I! b3 @  ]% u7 X6 wcd /usr/local/nginx/sbin2 N9 s% v8 |% Q* Q+ |
./nginx -c /usr/local/nginx/conf/nginx.conf
  Z, d* {) x5 ]3 v, x  N5 u1 Z" x, T#或者
$ `0 K/ Y& A7 Y( y6 u/ p$ Q/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf, {: O- p! {) I8 C' e1 Q
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
" \5 Y' I3 w* c
$ r' K5 t; \3 k7 {/ m5 n+ Y#进入nginx目录. q. j/ S1 I) m* T( F
cd /usr/local/nginx/sbin
0 G' X9 W8 I, D( j8 g0 N! ]$ `( k#检查配置文件是否有语法操作$ y/ Q: Z5 w& i8 K% H3 ]  x
./nginx -t
( e1 ]- \7 M! w3 w7 X( ]# 或者显示指定配置文件
" [5 q+ w; ~9 s) b! C3 I9 ?- O./nginx -t -c /usr/local/nginx/conf/nginx.conf7 d) ?( l  T* @& ?5 A4 {* I
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置2 t8 w$ Q( m0 }) h+ s: H) R# O
% p9 }) O; L+ Z6 H, h" V  k
#进入nginx目录( h) ?% z$ N) x9 v
cd /usr/local/nginx/sbin
& l- R+ E" k6 m! }5 _) T#执行重载命令( i" \4 u: J2 _% @1 ~! u8 u* r
./nginx -s reload* V8 p; A' {6 F: u* d1 z) r
" N2 n, j7 b2 u. g' Z7 `
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
0 U( d% f( v* c. D3 ynginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
) M8 p5 h( D3 L  w" O- ^/ k! G* |
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
5 E" S7 A8 G+ Q) M" T- RNginx启动新的worker进程,采用新的配置文件; w5 |% `2 Y' a" M( x
Nginx将新的请求分配新的worker进程
; i6 X" \% t5 NNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
! P8 D, d; d" n" z! U/ B$ D. `重复上面过程,知道全部旧的worker进程都被关闭掉。& m# ?+ R) I; \; n0 R" a9 z
所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx. ~+ O. h  C/ y* r- N; w+ H1 X
6 r' Z, l8 ]6 m$ ?/ T, Z
#进入nginx目录# ?9 L9 ?' z4 W
cd /usr/local/nginx/sbin9 y! I  Q9 r  b# D; T7 O' f
# 快速停止nginx
2 L, }; Y) ?- t4 c./nginx -s stop
9 l; |% _' u) ^+ T# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx9 T' r. w' D9 _7 g9 g4 \5 ]
./nginx -s quit
9 M' k1 R6 {7 \: I, R
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件* A5 l* w5 E+ a5 Z0 g7 l( @
2 r8 q8 p4 D2 G4 b
#进入nginx目录5 l! w# A! d% r  E1 t# W+ \1 x4 M
cd /usr/local/nginx/sbin
9 E. j/ y' c: Q/ ]9 }4 m# 重新打开日志文件' B& G0 s: P% {; y
./nginx -s reopen9 p+ A/ D6 W! a7 Q- B6 a
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。, J8 C& |5 w. D# j
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
4 Y' x9 ~' M- w5 `. ?6 ~但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。3 ~; Z0 D0 i/ S& J% y4 z& I
一般我们需要两步:3 q9 O/ w+ T! K8 @

6 V' x- O7 t% N- j7 Q: C移走文件并重命名, `& I! R0 w4 d* R. [4 \
利用 nginx 的 reopen 功能,完成新日志文件的生成。5 }6 p; S+ q3 U0 ]6 ^+ a( I
参考地址,感谢博主分享
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
3 ^& Z: s& a4 c+ ]* D9 C0 I2 n
2 M4 E/ ~- \/ r$ p" ^8 f# 查看进程号,下图  master的为主进程号
) H- w( ^2 i4 U. k5 \* Zps -ef | grep nginx" B$ w5 X( \; U! ^
#从容停止Nginx
3 j* {5 Q1 Y1 W3 D- ykill -QUIT 主进程号3 ?/ r. s4 m# }3 m  u- _2 d
#快速停止Nginx" }$ V# w% f; J: C0 d* e. n+ I4 g/ Q
kill -TERM 主进程号
9 x1 E$ B1 E' _4 t" b#强制停止Nginx. f1 G7 a, ?9 {8 c: W! ~
pkill -9 nginx
( G* i! |+ m1 U/ I% @3 }5 \- `# E#平滑重启nginx:
# q; p: y: U. n' ?9 {& C8 E; nkill -HUP 主进程号
: X6 j; e3 U% ]+ O9 o
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

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

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

1、启动:% `8 P) J& K% P5 ~- T
1 v* m. E# v6 s6 {
C:\server\nginx-1.0.2>start nginx
3 h, A" D$ i/ n& q( L9 y1 }! P1 ~1 O6 D7 I+ q# T: i9 l$ X
" I; Z$ {5 u9 X
0 M" ^& x5 q8 m% C6 g6 D( |8 I# @
C:\server\nginx-1.0.2>nginx.exe# S* Z! W4 \) Y1 x$ m/ Q

' i+ e4 A5 a+ ~( z注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
/ N4 I1 f( v5 v$ C& g2 G: e+ u) A* R$ m! A& w$ s
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf/ D" H# S5 x, y9 H5 O& ^' l( ?

# }- [6 B, w9 E$ u2、停止:
+ W0 q& n+ Q( z) L9 ~, q0 l/ |& ~" J" A- {6 @# d1 h3 }
C:\server\nginx-1.0.2>nginx.exe -s stop
3 U/ U" \+ i, c1 W' ^3 l4 b; m; `* U% s8 ^
5 U& _+ h- X7 V& z( r& n
, S. Z, F. p3 J* o
C:\server\nginx-1.0.2>nginx.exe -s quit
* e, y4 y+ z1 [* g
" j% b# b; h2 L注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
: }' h/ o! A' X$ }  v7 ^0 o. F( Z# K" G' e+ x
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
; `, y/ C9 w$ T+ g
9 N* x; D5 M: q4 M8 L还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用# v/ K6 P8 p4 i# ^" G1 A) P' x- w6 {- U
0 ?& \& f6 u4 c) x+ L
taskkill /f /im nginx.exe > null 杀死nginx进程
0 H4 D0 i- q; B) j% m  R  A0 V0 J( C# p5 {" S  w
3、重新载入Nginx:
; Y. R; m7 j: b7 T: N; H4 ^8 c
" t  d& B* H* s0 bC:\server\nginx-1.0.2>nginx.exe -s reload
) m& \3 S) P4 w# x" w9 V0 E: r- v" A: j9 V$ h
当配置信息修改,需要重新载入这些配置时使用此命令。
+ W# v' y3 `, i( J! U6 \2 f; p6 y9 W9 [
4、重新打开日志文件:
# F5 J' o+ L* d; R* V  l' T9 D
C:\server\nginx-1.0.2>nginx.exe -s reopen
$ d+ i6 I  f. {9 h% W0 y
& ^4 v6 w+ g: k+ j& p7 k3 F5、查看Nginx版本:6 x6 d! c% i7 s' q$ h& W" H

! a4 {5 |; S9 p9 _C:\server\nginx-1.0.2>nginx -v
" Q) P) c# D9 Q% e& d* k7 x! a. V. k: r$ k7 w) N
nginx: nginx version: nginx/1.0.2! u& h  u* t; K1 U  N, t

' _# u1 ]( S$ }0 T3 r# B
+ [8 E! R. Z; m
% G- L2 n9 v' w/ QC:\server\nginx-1.0.2>nginx -V
: t/ @* r" h1 a6 v# I
9 H7 n$ G6 t3 knginx: nginx version: nginx/1.0.2
& Z  b9 J2 E- ~; w2 P1 w2 h& ^; S8 D: f9 t7 o+ g, N
nginx: TLS SNI support enabled
0 \' k0 ]! ^7 @; i1 v# e8 E3 p! E1 k7 y  b7 W& q  y! g
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_module0 T4 O! G( H  D2 A' L

" b8 k3 T8 L0 u+ ?注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
7 h( O* A7 ~2 K* {& k  g
9 f. I. Y5 [+ k, Y2 T! y6 N7 k" Y
0 s& J, p4 Z5 z) z- U1 O6、测试或载入指定配置文件:+ h, W* P  D: ]5 N& G. Q3 f$ I/ B
4 X+ |- Y& s& T
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
- Y1 M+ k& \/ H: I
2 x- L4 n" R  j( @C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
: [: A# V. L. Y6 o2 E1 N; L* E; A  N0 y" i
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
3 I$ E3 e& Z2 W! R0 @5 _4 A
* c) Q" T7 p7 Q# mnginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful
. u' u( Q! V+ D7 n9 D0 m$ S! S$ I+ A) q! @" X7 z; g# n
载入指定配置文件
# v3 W  \& S# ]$ w2 u- H" `7 u5 O6 F% t8 o) @/ b' [% c
C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf3 F# Q" m6 L7 p3 M7 D; @% E
; a+ T3 p, L9 k' G" @6 _$ r
回复

使用道具 举报

319

主题

484

回帖

3115

积分

管理员

积分
3115
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
# H3 s9 t$ D) b( p1 [ 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
3 q( e* y( H9 Q' w) ]4 S2 h start nginx : 启动nginx
' M  ?: i2 t+ H/ D* u) _: P nginx -s reload  :修改配置后重新加载生效
% {; O9 B( Y& F1 _# d. Y nginx -s reopen  :重新打开日志文件# `7 [' ~# r& ?' ?0 H: a4 X
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
( j+ ^5 O' k3 c+ d, f  ^0 x. r       关闭nginx:
: I, G0 g. f+ a nginx -s stop  :快速停止nginx3 D$ ]& B' ^# B5 ?
nginx -s quit  :完整有序的停止nginx
7 l0 m; G; e+ R7 S 如果遇到报错:
5 \2 f, O$ f% y1 S- ]2 i5 n9 e bash: nginx: command not found
  S7 x, S7 \& K: {' [/ @2 ~7 U& g. t 有可能是你再linux命令行环境下运行了windows命令,
3 G9 B0 e) e8 E* q$ Z% @" T0 ^: s; a, K 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
6 Q$ d9 ~! H9 h 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 12:01 , Processed in 0.108356 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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