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

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

[复制链接]

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx: c. {4 x9 J; o$ E6 c
进入nginx安装目录执行+ _: F+ j% N: I
, j- Z+ z0 V: H( ~. W5 [
./sbin/nginx -c ./conf/nginx.conf
2 G6 K# A9 M/ s4 N, v% [! T' v$ U 2.验证nginx配置文件是否正确/ \: J) g& b/ l* b" U0 r8 p" n
) Q$ h. v! `' j& j& t+ O- ?/ Q' K
方法1. 进入nginx安装目录sbin下,输入命令
7 X! D' N) @1 Y" S! U
. [7 P' R8 {- H( Y9 ?) G: Q# y./nginx -t2 @- T- ~) j; J2 Q' `  q
回显test is successful说明配置正确8 k3 }' y7 |1 h! H( M

5 A3 A5 {% u% I! Q3 Q方法2. 在启动nginx命令 -c 前加 -t
# j( x4 E% s' B+ c. E6 ^9 M. `; V" ?: n5 e& P4 G
./sbin/nginx -t -c ./conf/nginx.conf
9 ?* l! Z8 t, j* L, \3.停止nginx
/ ?) d0 O; J5 z方法1:
/ w+ c8 x) e* [, X- J3 ~2 g
' W/ o6 |0 Y4 o5 G8 d强制停止:
6 I, V& A/ B! D! x: y1 y) O- ^/ N4 I: e0 {3 f5 D- d
./sbin/nginx -s stop
9 g- }  F, w; ^, U处理完请求后停止:
  ?7 Z8 X2 W# c
4 z/ r! _& i3 w8 |4 C' K, u./sbin/nginx -s quit
3 O2 S' B3 J) }! d. B方法2:. c  l. A/ W: ~# b4 O
2 c5 l9 _, Q" ?  _' i' E  v  M
ps -ef|grep nginx* h8 P* w5 x7 ?! `) [
找到对应的nginx进程号
: Q8 e0 v3 f/ F9 ]- K  c4 {1 p/ B2 k) r& s, _2 D) j3 K/ b6 u. \
正常停止:1 b- W2 o  v& d! m! T3 \* s$ y! h

0 @+ \, y1 ^: u. Q( @; z9 u/ Tkill -15 进程号
9 U6 _& ]( u7 ^. \$ u  v6 y强制停止:& `& l2 S) v; g0 m$ x  X
5 h: b! t0 K3 N" V7 S, b
kill -9 进程号+ S) |) z9 t2 w9 ]' d: ]2 b9 {
4.重启新加载nginx配置文件& C4 N3 |) N9 F$ M; u
方法1. 进入nginx安装目录执行, ], n0 h; M$ T. q/ c
- N2 X/ {  T" M1 ~$ _
./sbin/nginx -s reload
- W- O( M# }1 z" v! J5.重启nginx服务- C- U7 X6 g/ ?  R0 y
方法1. 进入nginx安装目录执行: w) K6 h- \2 E9 D. J

# Y0 X) j/ x1 w./sbin/nginx -s reopen
& z! M( ^/ M$ c+ U 方法2.查找当前nginx的PID进程号,并kill
( W8 y7 _6 q" \3 i# j/ z
' ^8 m) |3 m9 Y( c9 s  nps -ef|grep nginx% n- U( A+ Q0 ]# Q( p( F
找到对应的nginx进程号,进行
) S* H4 ?9 z' v
0 I9 T: C9 U" h. a, gkill -HUP 进程号
; S1 U8 S5 q( I" H% ?# o! x; ?- J" `  E3 R6 Z1 l
# w# E6 u( R- t1 [' g  ~
kill -1 进程号
& A3 J1 }& Q0 W* Y! y' K& Q实现重启nginx服务9 x9 [& I2 L2 l
- ~' D- [6 m3 c% R5 Z1 u
6.查看nginx版本信息& e! A) b( o6 K: z2 f8 n" u
1).只显示版本信息
9 b/ N( H$ F# i, V9 K% _5 {/ g) R
进入nginx安装目录执行
% m& q7 D" {' D9 h1 M
$ y) e- X1 ~1 y% c& F' z./sbin/nginx -v
/ V  O. _6 a/ a! o+ M! O1 R* | 2)显示版本信息和配置信息3 r( H" k# E: ^* p4 T8 e+ }
/ I' G9 _% T5 [' _1 s5 D8 G1 Q: {# r* _
进入nginx安装目录执行
1 m. O+ C" d4 t4 ^+ G
/ {1 t  B  _- ]( `- S) e/ d./sbin/nginx -v
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
8 e6 _2 G! d# T6 d/ r# i#1.直接启动
2 g" S4 [" H4 F6 m#进入nginx目录,执行启动命令
' L. V; g0 M) Y9 \cd /usr/local/nginx/sbin: r* a4 `' W+ Z- M) C4 I! k0 B0 p
./nginx
! j% T* X7 a2 a# 或者直接
. O) L2 ?1 `; M/usr/local/nginx/sbin/nginx8 M+ ]" a& p$ ^3 N- G) w' G
#2.指定配置文件方式启动; y/ d. V/ a1 Q; q4 h% W
#进入nginx目录,执行启动命令; N. ], U- w; f+ J/ @
cd /usr/local/nginx/sbin% c* w7 m3 q# ^  I: V
./nginx -c /usr/local/nginx/conf/nginx.conf
* K# G! O& W% v6 L2 N#或者* k: e3 i0 t2 m% r
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf3 _% r4 @1 O5 U' S
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件# |! w* L) n- c9 _* x9 e& r

& E7 }7 c  U' `% k) c' c) @#进入nginx目录
0 |/ o- d) w* d/ g- G+ Scd /usr/local/nginx/sbin! W6 d$ G  j3 g+ m
#检查配置文件是否有语法操作
3 r; M6 z. L8 \9 [0 T& X./nginx -t6 \' f, E  h& b- D' V
# 或者显示指定配置文件* D! }  t( D  M0 T4 d6 {% e2 b5 d7 [
./nginx -t -c /usr/local/nginx/conf/nginx.conf
: ^/ |# {3 u# V8 V" q0 s
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
. t. ]# V* l! Z9 R5 @6 r6 F3 J5 ~
7 y% A. R2 ]$ ~- T5 R9 |! j6 @#进入nginx目录
  z9 j. Y( S0 q; _cd /usr/local/nginx/sbin
' Z! i7 L4 h0 D#执行重载命令$ I9 J. c- H/ s- I& W4 S
./nginx -s reload3 E$ x- Y$ S$ F& s, f7 v

- A' `' M; u" u- b5 Znginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。  j- x. R/ o- y+ K# r/ F
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件6 o; ^+ E- r( x0 ~

. P  I& X3 }/ ~+ SNginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)$ e0 O0 z; `. @+ @2 Z( Q, m
Nginx启动新的worker进程,采用新的配置文件
% s- _# _" W/ F$ `7 K+ T( r. yNginx将新的请求分配新的worker进程
' B) B1 k/ H9 k8 D" bNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
% X9 i$ l& r  C  t- ]/ k* ?重复上面过程,知道全部旧的worker进程都被关闭掉。
4 N- r( m0 c) H+ Z' a+ D( C所以,重启之后,master的进程号不变,worker的进程号会改变。
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
4 j* \/ e1 b3 E$ b' Q3 K1 _- x) q- k. X5 Y2 J5 ~9 h1 [% ?' o
#进入nginx目录
. y, G1 c/ _' O2 q9 f, n9 a3 Vcd /usr/local/nginx/sbin
" {2 |. t. G4 H9 D" j# 快速停止nginx
* O1 B" Q' f  o: G./nginx -s stop
8 h+ t; _& u/ g3 g# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
/ D8 V( W$ z, A3 H, y# ?./nginx -s quit
8 a5 M$ ~' @. k0 T+ u2 D
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件
% e# I! n* v" K' R9 \) g& ?. ?  {' c/ \1 S! V+ V
#进入nginx目录
# c, v0 t. V/ S0 O* R0 |' Pcd /usr/local/nginx/sbin, V! h- `9 o8 `% a- C% m0 y* I
# 重新打开日志文件3 T' u9 F" P$ f0 p# P% d
./nginx -s reopen
2 J* i: i. S% s2 F, ~
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
- I1 ^7 S2 x4 J8 \当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
- \! A7 y+ {8 Z  k但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。. q! d1 _# o* k: h
一般我们需要两步:
. X$ K  |. `5 H1 }- ]0 T- v' e) L+ h/ _  }: J4 C6 N
移走文件并重命名
# R3 E( `1 i, B' I6 u5 j利用 nginx 的 reopen 功能,完成新日志文件的生成。
+ U' `6 m& ?1 C0 H- b参考地址,感谢博主分享
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
( N* U+ x2 g# e+ T- a- Y
) d' c1 B0 B/ J7 P# 查看进程号,下图  master的为主进程号( o  e- b& C  {7 j1 X
ps -ef | grep nginx
; r* d% u/ b1 Z#从容停止Nginx
! d' N  V- c  i/ c/ f+ O% Z. e. ?kill -QUIT 主进程号
" a$ K$ I. L: s1 n#快速停止Nginx
/ k* N  Y) J0 j& s  ^& Akill -TERM 主进程号
8 Z* L3 w# u5 b' ~2 ^0 ?#强制停止Nginx
" Q& X# Z- l+ R1 P* ipkill -9 nginx
- P* Q8 o; H3 ^$ D; j) F; z6 ]#平滑重启nginx:; t9 i8 }& N0 N& ~' w; U+ n2 K* x
kill -HUP 主进程号
! t5 Q5 l9 U: ^% T/ l) x% m* p
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

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

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

1、启动:5 N, }1 x  D& H5 }

' `2 V7 S% F, u3 B! rC:\server\nginx-1.0.2>start nginx
9 Q/ m. p$ _5 V: ]
4 Z) l2 j8 v! A( j  ~6 O: y7 k) D1 l/ _! e. Z  G

' C! t: r& b. x- Z1 l5 e' HC:\server\nginx-1.0.2>nginx.exe
& P  S: ^- N! R$ T; Z
1 H  n' q6 D$ L注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。2 }8 j3 n) v5 D! l3 z3 m; J
: G" d% i! s& V7 B
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
" e1 Z# F2 I, H, B4 U- s8 n. v! E6 F. h' z2 \
2、停止:
7 F8 J3 B8 [; u+ O9 M5 h" q7 q8 y# s- _) j; E) T" T) m
C:\server\nginx-1.0.2>nginx.exe -s stop" C, @# F  l* `4 }2 A/ o+ u* \
4 N4 d# @+ K* O) \4 r* w+ C
: n2 U8 _, c  a3 q$ F) h

! f$ q4 \! D; g" W  @C:\server\nginx-1.0.2>nginx.exe -s quit
, m" ~$ F7 ~& }6 G$ z
7 ?6 q7 @5 e! P+ Q* H# R! M注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
! H; n$ K) c  ?- c. i, v+ @
0 H3 G  q# V  ?* U0 X  p3 D执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
$ w7 l6 h; |( ?% t6 K# Y0 c8 P0 A1 W
还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用/ `9 P0 o, U6 s  n; Y
8 t/ G# H8 _% q8 i$ E+ {
taskkill /f /im nginx.exe > null 杀死nginx进程
/ \6 r+ ~. S% c* E0 c3 t" M2 F" p- V2 u7 u) }6 r
3、重新载入Nginx:5 _, ?$ l7 j& w/ h% f, P9 F* j
  G( g3 G% |& u: o6 x/ l; c3 H
C:\server\nginx-1.0.2>nginx.exe -s reload. C5 @0 x7 D! e( d$ ]( d, D  X

& w4 V5 d" e( R9 c' q当配置信息修改,需要重新载入这些配置时使用此命令。# [) u8 P8 j' c0 p2 x
% Q4 l( F1 M; D7 ]
4、重新打开日志文件:3 G, d; Q) y" ^+ i0 D6 t( Z
% m6 @/ U; Q$ B. N+ M9 ^+ L
C:\server\nginx-1.0.2>nginx.exe -s reopen. A3 S& {: i8 J. R/ z. V
! X3 q4 p: R/ x/ [
5、查看Nginx版本:4 S6 ^! |' ~, L& V( c* Y
& [) x$ V. n" ^5 {$ _
C:\server\nginx-1.0.2>nginx -v4 b. O6 V( w8 _
& ?# U4 G& r5 [( S5 E% l  C+ I1 a
nginx: nginx version: nginx/1.0.2; L$ D- O  [( ~: G4 r2 w
  [. r. _7 O% J6 ~$ s. `

. c+ O4 ~  n9 y4 j: C% e! F9 {! B. v1 M
C:\server\nginx-1.0.2>nginx -V  c" z5 S' A4 o1 d8 ~! Y

1 Z) ]1 F  q+ B" f/ q+ Q. j" dnginx: nginx version: nginx/1.0.2
8 v& r) f1 W! s4 A9 @# S% e( i+ N
, Z1 s0 M, T/ q( k! w* Inginx: TLS SNI support enabled8 J9 U' |; p: ?4 i* e4 Y( u  J5 w4 v
( O: u# O1 M# r% j5 x' G7 p; M
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( B8 I" F& y. e4 O
2 ^( P2 y1 x1 S5 l
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
  u$ R( v& ?8 V' E- g/ |6 o
+ D' Z+ f" e: H; X% G' K0 V& [% {3 x0 `% A/ o
6、测试或载入指定配置文件:1 t& x- d) v/ `  Z. q

6 a) O0 w  h0 G1 y- N/ d* a注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:# r, E* o3 k' \9 [/ B6 D; d( H* E
# S/ ]3 U8 h8 O- o. z) q
C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf: O; y  B1 F+ W  Z9 _- U
1 A, w8 B4 i3 z* v9 ?
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
8 b, X/ e9 k7 \2 y  K( ?  r
" U9 ~2 h) M& \0 i3 inginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful, S" K6 L9 I, P% s1 f- X

' i: V/ u& z) U- g* U1 X  M载入指定配置文件
+ r* Y8 l7 `8 h' x
& Q3 D! R' N: ~% W5 T' y7 FC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf4 ]6 d7 L& S) }" T  l% X
2 U5 c1 m: x7 G: [
回复

使用道具 举报

348

主题

566

回帖

3710

积分

管理员

积分
3710
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程. @0 Z% N0 _! G; p
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
3 |1 U! z! Q8 J6 w- C( g) p7 j start nginx : 启动nginx
% i% `& c) a) d$ u nginx -s reload  :修改配置后重新加载生效
* r+ F4 `; {3 I, j( ~+ I- F+ u nginx -s reopen  :重新打开日志文件$ O# c8 g' K( g' ^
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确: b8 V% w: E9 b2 M! ^. Q
       关闭nginx:! |  V& q& C/ B" d" [: E, v! Q
nginx -s stop  :快速停止nginx
, o6 R! a1 s4 E8 }8 `0 G( G nginx -s quit  :完整有序的停止nginx
, L5 H2 R* y2 a! c3 i# p 如果遇到报错:
( p7 ~  n. Q7 s9 u bash: nginx: command not found, L. `! [+ u0 M1 k' x  `: L
有可能是你再linux命令行环境下运行了windows命令,
2 f, Q+ \* P" h$ g2 q! I 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
" j, b) P# J2 x4 `2 e2 L 或者 用windows系统自带命令行工具运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-11 12:22 , Processed in 0.148045 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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