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

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

[复制链接]

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx
) W% G, J$ o/ K/ f0 N1 T5 i6 G进入nginx安装目录执行) D. _. i; q; q. A( f" z8 h
/ @, z& O  t+ b! x  L
./sbin/nginx -c ./conf/nginx.conf- e5 m8 d7 e. K8 K, {
2.验证nginx配置文件是否正确8 y7 `  h6 h9 k! ~
2 k- c! Y& w. p1 B& x& X
方法1. 进入nginx安装目录sbin下,输入命令2 a$ r/ ~! {8 L3 C+ y
5 {  j2 r7 j/ v$ t2 w' E
./nginx -t
( [1 x, ?5 P, Z# K回显test is successful说明配置正确
/ j+ _/ O9 |/ ^$ b0 o' v9 ?7 `1 j+ z5 [+ ^0 l$ C* \) G( H
方法2. 在启动nginx命令 -c 前加 -t1 ?9 }: Y5 o6 G& I7 e: n
) X" b8 t& U- l/ H5 I
./sbin/nginx -t -c ./conf/nginx.conf
. \" d# V: u4 S! n3 u3.停止nginx5 U: ~9 l7 B3 A# h4 J+ _
方法1:. x% C1 N# Y" i- y9 [
( _! P/ K9 W; B4 \  J3 c6 v
强制停止:' x  C9 N3 k& \% _

& G5 K9 Y; h6 l: _./sbin/nginx -s stop7 x3 `) P, `! f/ W" P- u
处理完请求后停止:( Z( f! ]. y' O* P0 K* u
# |! a0 y' U/ i$ S7 q$ C
./sbin/nginx -s quit
& i) \* N% \+ Z" a+ y方法2:. W4 c) x. P' g
! ?3 L" _* e. b: b1 d
ps -ef|grep nginx: H: B, @1 z0 u, h2 n7 \1 ]
找到对应的nginx进程号" U, x2 ]& e: l) A# n5 G8 z1 M" R

7 M( z5 R( ]/ p5 [. b( Y正常停止:6 M% G1 c& D6 n, s/ p6 ~3 g$ l
+ J1 Z% g4 X* @* M) e
kill -15 进程号. k2 X0 ^. ]0 f0 @2 q! p
强制停止:
. [; A4 e1 u( @# O- n$ y* s$ ]8 D7 J9 t
kill -9 进程号3 L, W5 ~. \+ M& b, X
4.重启新加载nginx配置文件3 y1 e+ `" G: s' A- q4 F% m
方法1. 进入nginx安装目录执行
  w0 ^( s/ S( x! p* V: K0 o' c. s* ?. l6 s9 z
./sbin/nginx -s reload
% l/ P' _9 m- V. g/ y5.重启nginx服务
! _- S, ?- g; B方法1. 进入nginx安装目录执行
/ l1 t' X4 {$ e) b3 @7 [
% N* O, U( n( Q./sbin/nginx -s reopen( d' y( z" T2 {: G" A
方法2.查找当前nginx的PID进程号,并kill
# D  A8 ^, [7 H, V* l; k! b) o1 B
+ O" T' X: J" L- {% [) H: T+ R: Pps -ef|grep nginx
, S; b8 _+ Q& I, L: y找到对应的nginx进程号,进行
8 f7 o# H) A4 \: o! ?. T  b9 [
( B9 m/ y$ |7 m  _2 @kill -HUP 进程号2 u" G% P$ K% O* _
) d. H+ b: D, ^1 L/ |# L

9 W, [3 W0 G& J$ E+ @kill -1 进程号
- h7 ~, K1 K( x. n/ \实现重启nginx服务
& U7 b1 J8 d5 G) B7 m; Z
: U  c/ Q2 W- E0 g: P8 f: o 6.查看nginx版本信息0 D- w9 n  G- x& e3 ?
1).只显示版本信息
' W, X, m* I3 q* E% `# a8 d# k; T  y5 j/ f5 N
进入nginx安装目录执行0 t1 e  z% v; k; @, s" j1 z
9 S* G: ~! g9 d$ s
./sbin/nginx -v/ o7 Y# S8 v% Y7 p" c% }. @
2)显示版本信息和配置信息% u  h5 i  k; L9 H. p8 t8 o
9 X2 w$ K, E8 z
进入nginx安装目录执行
! |# j$ h0 V) }
1 }  e  S0 W7 u9 n( j# o./sbin/nginx -v
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
1 u/ M: A/ ~3 m& t3 T4 O+ o#1.直接启动
( A3 F5 W6 @) K4 m  d' Q% u% w#进入nginx目录,执行启动命令+ r+ A7 V1 f* e; k! R. h6 x$ T4 D
cd /usr/local/nginx/sbin: l) z1 o* Y3 \
./nginx
) X6 c( b4 _! \# 或者直接" T) ~* h) V) V: O1 |
/usr/local/nginx/sbin/nginx# E5 [- W+ z2 W* C) H% y) e
#2.指定配置文件方式启动
. w) _6 I  {. D2 @  I0 F: J2 y#进入nginx目录,执行启动命令9 X1 I- G, n. k
cd /usr/local/nginx/sbin
. [( c: I5 P9 i/ U# z3 U./nginx -c /usr/local/nginx/conf/nginx.conf: t' T" J6 N3 s) c+ `3 I& _
#或者
# A# G3 ?" J- |6 T! C: Y% S# c/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
$ S$ d9 u# E( G: n5 a
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
2 G0 `: r8 b! ~# I1 d9 |# S. n8 P
#进入nginx目录0 }/ \: P+ l) k7 h: e
cd /usr/local/nginx/sbin
: c2 \" _  l; w( m  C' u  g  i#检查配置文件是否有语法操作* W, c1 e' J# [4 h$ X
./nginx -t
7 ^' w  Q, S1 u5 w# 或者显示指定配置文件- n" c# e* j; _5 D# }, N3 G2 F
./nginx -t -c /usr/local/nginx/conf/nginx.conf* S& j5 {- |. e, u
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置9 N! Z- [8 I0 k# J3 f
" K" K: {9 q+ X! m5 [2 R
#进入nginx目录; K4 e$ r) W- w/ Z7 k* P1 Q4 p
cd /usr/local/nginx/sbin
6 T) K6 ~: h, @2 A' \2 N0 e/ r) d#执行重载命令  A0 i* Q9 R" s0 @! d2 Z: n( `
./nginx -s reload
* f, p! H  J) M4 S& ^& |  L5 x- M, t6 g: t7 H, R+ ^
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
8 F1 p6 S0 {+ `- I( Y* ~2 @nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
' P. x# A' j% E% e! v, z) T
  w0 f5 S+ b& b3 d7 T$ F6 cNginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
7 I3 W! K5 ~4 r+ P1 BNginx启动新的worker进程,采用新的配置文件
7 l  s( t; g4 Z; R7 e5 d6 A. VNginx将新的请求分配新的worker进程
& L) C8 `% |5 c; Y& y; ]9 O2 oNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
  s* \! F# j  q, X3 U2 u; F重复上面过程,知道全部旧的worker进程都被关闭掉。
7 s# b8 S% A2 Z8 Z/ q1 x0 S7 k- y所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx) p. x$ P$ T+ Y/ x
* P+ ]* I1 C3 h$ V6 T* C
#进入nginx目录
9 X( y( X& Z, tcd /usr/local/nginx/sbin4 q2 H/ j" L, S5 j  K7 b- y0 `+ x1 f
# 快速停止nginx
0 _  Q5 t& q5 C6 x5 L. p" ^./nginx -s stop1 q8 V3 g. A  T+ j! T
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx. f# J) X! x1 E& b% L# P0 J5 @! ~
./nginx -s quit% A/ O, O( F0 r$ w
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件% l" I% S$ \, N) _& n& X

  s5 G. i& v) `* }#进入nginx目录
$ [5 d) C3 S& u. Y, k+ x' A0 Ocd /usr/local/nginx/sbin0 w# l7 X& N; A- p% p( j( _& V& x
# 重新打开日志文件( ?4 d* Z  G+ U
./nginx -s reopen
  p% F% }3 t0 S/ x# F
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
1 i' E, ?2 \0 k; I当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
- U! T& b; t4 A# Z$ e3 G: N但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。) Q; V+ z) L+ B  d1 y* f3 p
一般我们需要两步:
0 [+ n3 q: j, B. r" N& E0 z9 T3 `
移走文件并重命名5 A8 i9 N0 u  w3 h& j  |% Y. P
利用 nginx 的 reopen 功能,完成新日志文件的生成。
1 ]6 W# w! e2 @4 R  S+ Y' l参考地址,感谢博主分享
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx6 a- E, q% Q9 @
- S5 g+ M' I9 b' D2 N
# 查看进程号,下图  master的为主进程号
+ o  r$ [; F( s& Dps -ef | grep nginx
" L8 Z9 e  m1 W$ E" s#从容停止Nginx0 F, ~, @) p  n' P& B" T4 D
kill -QUIT 主进程号& l2 ]! t! y/ `+ V2 J( N2 I; r) X
#快速停止Nginx
: m$ z0 g! b2 A# k) p# j7 Akill -TERM 主进程号
5 p3 K- |0 U# B/ U+ F#强制停止Nginx
/ g7 J0 F% o9 {& kpkill -9 nginx# c. E' O1 j( _9 C0 Z9 ^/ I8 g  y/ e. a3 e
#平滑重启nginx:
/ f* H  ^( U7 S! [% _kill -HUP 主进程号# m& b4 ^/ y5 S
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

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

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

1、启动:
0 L8 E" q# T+ C. w% x! O6 }4 W
# j! j2 i; n$ k+ I. [% n4 |C:\server\nginx-1.0.2>start nginx4 U( m: ]- F# j+ j1 b
" s% Y8 J' D- H8 x2 A5 ^
; f% M1 U8 r8 T
  _3 [' U1 f& i1 p- y
C:\server\nginx-1.0.2>nginx.exe
. z0 ^3 a+ C5 I# y' ?0 W/ \4 ]' p& V& C7 t7 Q7 N7 T
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。4 y6 \3 M7 W: H

, V3 r. F( K. K9 {! m# A+ E" h如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf$ C7 Q3 a: F7 P# m

% i% d! @( k, ~# `9 }4 X2、停止:
/ `# b; G% E/ Q; N( K* h+ t$ `: a9 A6 R
C:\server\nginx-1.0.2>nginx.exe -s stop
4 e3 a1 C3 U2 X/ C
% h- N3 d" ^3 U& V- E( S
6 m/ b: A( V( I, `, _+ S" X* k
9 C& v( g! N' n7 T7 X) e  v" OC:\server\nginx-1.0.2>nginx.exe -s quit
, [6 x% d& Q$ Z. s6 w4 {  \( J5 V# c7 @: M
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。; X# r8 R" M+ D6 [, ]- x6 g

, ]- o" \$ ^5 n2 q" f2 J  s9 Z6 n执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
2 o. S$ Z+ |- p* z  F3 I% s3 Y- Y
% `  U0 R0 p" J5 W2 T# [- V还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
: t9 ^) w0 _( q4 X: {" X( m8 F/ V' m6 C3 E
taskkill /f /im nginx.exe > null 杀死nginx进程
7 g( z5 G, q. j1 z/ t0 Y% v3 ~5 ~, X- o" A; L8 e1 j
3、重新载入Nginx:  t) }% W9 m+ l9 Q9 N1 C) Y, N
/ b6 _' G3 d5 Q! h  H% t% S" E
C:\server\nginx-1.0.2>nginx.exe -s reload: L7 G* E" m! K  ^4 Q0 e# D, N

' m- ~  f' {3 }当配置信息修改,需要重新载入这些配置时使用此命令。: Z7 `- \. j( o/ ]* c

/ [1 O# `' v: i- n2 ~! ]! r4、重新打开日志文件:4 T; B6 N# l$ s2 U. w. N. U
. s% u, j8 y$ R2 U( u
C:\server\nginx-1.0.2>nginx.exe -s reopen. H' X! T4 Z9 X% A# R/ H5 Q7 d+ B% J

* J9 G, N& I5 Z5 g9 ^0 D- K5、查看Nginx版本:
. o$ T. h: l# T3 k2 w4 b3 m3 l/ h  _% z+ H& I0 K1 v4 B& g
C:\server\nginx-1.0.2>nginx -v
- |* w5 a. B# o$ g7 M  l
# s: d- L+ q  `/ U5 ~nginx: nginx version: nginx/1.0.2
0 P! N4 I6 K$ r" N( L9 L
, m+ f+ V- [6 i$ n2 ]7 K: R( O
6 ?, V* L! U0 O$ t; g7 u! p4 G4 B+ w1 V
C:\server\nginx-1.0.2>nginx -V, _8 B* a  K; R5 z

( o# [" c* W2 xnginx: nginx version: nginx/1.0.2$ i- ^* X7 V, w4 R  m; U
) Z; n+ \% F3 Q- n, U! f
nginx: TLS SNI support enabled2 L, Z* N1 @% @* ^9 d
: C! l* E  Q) A1 z4 h' u  z; g2 A6 `1 _
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
% o$ J: B# T/ l7 L- t
( D6 g& G7 r' ]注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
% X9 J$ t1 e% h8 h7 p9 |( |0 I$ u5 S! r9 y
4 L# [( k- c+ c
6、测试或载入指定配置文件:) E8 K. f3 ]9 g: w- K
- \6 @. c2 X4 e8 o
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
$ F! f3 L" }+ h5 [" M; y+ A! w3 T6 k3 ~: C, n: z2 h$ k4 M5 z
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf
3 ]0 _; a; H6 A1 z+ b: b% l: C; Z4 K# |  v5 D0 v) h
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
  f) e0 Z0 I# ?; {. M$ ?
. Q( q* J6 L- z4 ]" Cnginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful0 \& Y- [$ C! o9 z3 p7 t0 I: b
" q( z5 G9 N/ r, O" D
载入指定配置文件" A6 P, ~( B4 E; \! s' _

" l" H. W" J+ f' D- W4 `- tC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf3 E' d+ X) f( G) D; J
* ]( ?( I& \) R8 u# A/ W  }' X
回复

使用道具 举报

322

主题

485

回帖

3168

积分

管理员

积分
3168
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
* {8 M; X& `4 [ 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx ! N! E5 f6 R  ]% V0 v' }* \# Y+ M
start nginx : 启动nginx
1 g7 a# k6 @7 A: | nginx -s reload  :修改配置后重新加载生效
" x2 b) K0 Y& z  d' |; J, x nginx -s reopen  :重新打开日志文件
5 _  N" @5 v, L& G( H7 K nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确* k2 C% M, H' a; i2 f
       关闭nginx:
6 ?) t  D" E+ @# @  {7 O nginx -s stop  :快速停止nginx5 o! [9 |) t6 u0 n
nginx -s quit  :完整有序的停止nginx! l* |% |* ]. ]" j( }) k4 L+ ]4 @" c
如果遇到报错:
9 T6 A  |% Z, l3 S& n5 T: E bash: nginx: command not found! o0 K, _* y  \0 h9 Q" J! U
有可能是你再linux命令行环境下运行了windows命令,0 `+ T: z( P8 R+ _' \
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload7 R, Q& R: @% L- P
或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-14 07:41 , Processed in 0.080059 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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