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

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

[复制链接]

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx
+ L. L2 Z8 j, P/ U' w, @进入nginx安装目录执行
4 _% {) B1 P1 r- r8 p1 `; T& H2 g6 G. L' @5 T
./sbin/nginx -c ./conf/nginx.conf- }+ P# ?' q% D$ Y; d) C# l
2.验证nginx配置文件是否正确
  n$ ^/ ?5 `# J
- Z' R8 @1 E3 i/ `; K' O% z& T方法1. 进入nginx安装目录sbin下,输入命令
" r% M2 m+ D4 y: j+ h+ G+ G# j. m1 s6 L0 v3 a" e
./nginx -t
) H' x+ H$ H$ f7 p回显test is successful说明配置正确& {3 {- |" N5 O7 x4 i

- M$ h* C! a/ v方法2. 在启动nginx命令 -c 前加 -t; `6 m# o$ y8 U0 e

/ T; p% q' l! \6 T+ b% d' ^2 y./sbin/nginx -t -c ./conf/nginx.conf  n9 |) r' l8 t8 _) D! Q1 m0 V9 S' A
3.停止nginx
+ T+ t9 S. [2 t/ ^方法1:* Y( O$ {. X. `# t- |

3 k" K9 u  P- r0 m7 Z3 ?" e强制停止:( C* v4 N0 n/ f1 k4 K
3 {1 z0 O) Z: Y$ Y, v
./sbin/nginx -s stop! S8 e) q3 k0 n* H( L- P4 D/ Y5 O
处理完请求后停止:5 k4 m* f4 ^  K, t5 K1 w
% X0 ]4 G" X$ J7 l2 e7 C9 Y3 y$ T/ u
./sbin/nginx -s quit
. @8 l* }, x5 K' c8 M" z! Y/ Z7 V方法2:
/ ~# L1 [% a$ B* ~2 {0 s- O1 Q" V( k+ Z, X* B  D% |  a
ps -ef|grep nginx
' b4 i& G* p, a' p3 k4 m, o找到对应的nginx进程号- n- v5 G/ R/ @, N1 e! q# R

7 R  J; \3 k  ]* Q9 v正常停止:5 s* Z4 B& H# |5 S/ O0 [
# j2 Q# i4 i0 ^( W, Q
kill -15 进程号
; R5 Q4 y9 y1 y! H" u/ l5 w强制停止:
! m: \' m8 F: r5 ^! A; x0 t+ P& M( c3 M
kill -9 进程号
0 `8 B2 a" R- }7 ?5 }4.重启新加载nginx配置文件  i; m: F: @+ O5 c/ Y
方法1. 进入nginx安装目录执行& l& ^2 y5 L& w* @0 z+ @1 O
6 m& p5 W- k% @; I4 u
./sbin/nginx -s reload
) P/ h( k% M1 h+ M5.重启nginx服务0 ~' ?4 P# n) J( K  _( X9 _
方法1. 进入nginx安装目录执行
$ t! u9 U& T/ A' r0 D4 R2 q0 }0 E$ O/ `  A2 c- }! W6 C3 w
./sbin/nginx -s reopen
- @- k  {4 Q( R$ {, o5 l 方法2.查找当前nginx的PID进程号,并kill
% O+ v# Q0 |) Y3 }% B: ]( z& D8 A# `6 J- p
ps -ef|grep nginx0 b7 F. p4 J8 Q
找到对应的nginx进程号,进行2 X) A8 }9 O% q8 H

2 d% I1 v2 J: ~! bkill -HUP 进程号
: X. Q; b( s) E) U% P; [# w# r
  v) k& z' Z' i7 I' L' F; k" T% Z+ J# z. S
kill -1 进程号  i+ ?/ L" D3 A8 k5 c
实现重启nginx服务
2 K0 k  t, t: s0 U( G: K- z4 M- Y# F( |/ c  S% V
6.查看nginx版本信息5 y/ i- j$ E: [! Z
1).只显示版本信息  [/ r+ F7 G; ^6 q; F
* {0 _% v3 z5 q6 t
进入nginx安装目录执行
) i# ^! b( a: r  H7 u$ O) Z/ X
/ A5 ?+ G" L+ ~- z./sbin/nginx -v% ]6 b( x' u! w" U% A
2)显示版本信息和配置信息+ n+ z+ ]2 ]$ ?  |" e+ z
/ m2 P( P$ M  ~. K; T' J. P$ o
进入nginx安装目录执行
4 q7 ]; D+ i) `% {6 ?  A
# ]7 j# z# W( C: E8 U) H6 l4 F./sbin/nginx -v
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动
( ]/ e: I2 d1 w6 f& F8 T#1.直接启动' }" D* [# X% w! q! a- m& }
#进入nginx目录,执行启动命令
8 s* |( A9 W! Pcd /usr/local/nginx/sbin' o3 g1 l1 o9 p
./nginx' M; f9 j) ?5 l8 {8 u/ B+ I) [0 M
# 或者直接
$ D( G7 Z& K! s: O4 c/usr/local/nginx/sbin/nginx
, L' f! v3 S' |3 e# B3 [#2.指定配置文件方式启动- B" q, b7 |1 o' L1 g4 G
#进入nginx目录,执行启动命令
$ y& r* P- S% _4 ?cd /usr/local/nginx/sbin
$ F: e3 r& P; }3 {./nginx -c /usr/local/nginx/conf/nginx.conf
. ]$ \' K' c- [9 {' ^) E#或者
& ?7 _3 @: K3 B) P4 d/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf4 d0 E& ^& c/ }( O
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
  c! L* w. C* |7 G- ?% ^# T& h7 ?' s9 X& g
#进入nginx目录
: e, k3 r. T5 C# S6 F7 K( @cd /usr/local/nginx/sbin% ?) D- `; u4 j  ?  s/ p* A
#检查配置文件是否有语法操作% D" R4 y! c8 V8 d( B5 y0 A
./nginx -t
+ D! g. V/ |$ S( u+ w; L# 或者显示指定配置文件
1 d0 m% s1 \  Q./nginx -t -c /usr/local/nginx/conf/nginx.conf
9 H; W# v' s' p
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
. t, N- a. e0 _# T: U* j3 W8 n/ t, M* x* @; C
#进入nginx目录
! M* C; t7 @0 O9 _! Acd /usr/local/nginx/sbin, w( W, S( J5 k! R; a
#执行重载命令2 Q% U% o9 }" ~4 C' g7 @
./nginx -s reload
' {" t/ q' K+ ~0 _9 x4 [! e0 H
/ i& P; k& y2 O+ k; W! _0 D( c7 ~+ Rnginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
6 n% I; y, E1 }2 q1 X! ?1 |' enginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件& c; _5 e6 o" K3 c
# q% I9 v; {" g, Y! \4 T$ t
Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
% M; G2 e3 p* E4 HNginx启动新的worker进程,采用新的配置文件' B* W. E! G8 Q7 X  ^  J  k$ u
Nginx将新的请求分配新的worker进程
  `" }' j1 \, WNginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
, @# }. }! `( n: X+ @) d) C重复上面过程,知道全部旧的worker进程都被关闭掉。
% Q8 u8 i# d6 ]7 L: D所以,重启之后,master的进程号不变,worker的进程号会改变。
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx- ?9 \8 P% ^; `, V& R! O4 v5 D# r

: d0 X* c' e7 U#进入nginx目录3 d* c8 C; o+ s) A7 i. \
cd /usr/local/nginx/sbin# O" g+ G, M; S8 }& S* y
# 快速停止nginx
+ w3 ]& e  g; U! |./nginx -s stop
" O0 u6 N6 ]: x% J) t: {$ Z# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
& J+ w/ A) p( |( w) ^% |./nginx -s quit
% C5 L: W4 r: u, W% q
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件4 R, Y2 |" q5 U: C. `
) J: N/ q/ s" u
#进入nginx目录8 W) c8 m" ^, D' j
cd /usr/local/nginx/sbin* C8 M; G# F, }* y6 w, K" i. {: M
# 重新打开日志文件
! u  ~0 A* K+ I1 O& [6 g7 s./nginx -s reopen
0 z5 G6 ?. A$ [3 ^  G# Q
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。4 o4 N; j) a1 E6 _5 e5 O
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
2 ~3 {1 a. \8 O' }但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
8 T0 y* e, i9 ~一般我们需要两步:
2 D( z; ?% T1 ^' Q: @' z
+ `" [% H; a5 V- r% V2 b# }! x移走文件并重命名
" X0 [+ x7 M8 o; Y  K利用 nginx 的 reopen 功能,完成新日志文件的生成。
$ ^* A- e# q9 S! v参考地址,感谢博主分享
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx* E8 g; f2 ^$ H5 k* d5 l

0 i, [" r/ p0 y; p# 查看进程号,下图  master的为主进程号  l0 y- l/ Q7 E+ g  G
ps -ef | grep nginx
& Z* P/ l/ W& }8 U3 K  y#从容停止Nginx, q$ [1 v4 Q3 M. I. d
kill -QUIT 主进程号  w& z& N0 Z# \, m& s
#快速停止Nginx
5 X6 Z! f2 I0 m% P% f. @; R; J* Q1 lkill -TERM 主进程号
5 f; K2 t# h; K( k) X#强制停止Nginx" \8 ]" V) V1 K6 b4 E7 w- i; D% J
pkill -9 nginx( X& @; F6 V& t. C" a0 u
#平滑重启nginx:
2 i6 [, y% X5 R8 @& A: H& ykill -HUP 主进程号
! u$ y  k9 M, i% c: i* j
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

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

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

1、启动:* r3 }4 ?  e/ B  h
8 d3 Z5 Y1 E& v$ f& ]2 q3 Y6 Q( G
C:\server\nginx-1.0.2>start nginx) g7 H1 Q; Y8 F6 G+ ?3 O$ {

. }0 |( s7 s' G3 C0 `0 ^6 H  N1 `# R& ]3 R; _

" z, z: q, V, Q. T, tC:\server\nginx-1.0.2>nginx.exe
7 p/ j4 ?* a6 ]% v: V/ N$ m6 Q$ H/ w' ]6 |3 @0 y( a# \5 X
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
# T4 y+ D) |( W
" i- X& y( E8 f% a4 x如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
' |) N% W, @  F2 d  \, {6 L2 B+ ^" [
/ W1 v' A5 G# G. i7 K: w1 l* Y2、停止:7 K& P1 W" d* m: x

/ a( E& C4 ?1 T5 W- qC:\server\nginx-1.0.2>nginx.exe -s stop: ^" i' V7 h# O9 S9 G' c
' @6 ~0 f4 A' k8 [" w/ q7 q

8 y$ O! B: H! R( k+ m) o. y' l5 T! u# \; g/ C7 {' b) M* r8 j9 M. e* O2 U
C:\server\nginx-1.0.2>nginx.exe -s quit
1 E& A* Y0 H2 V
. W' T, x1 ?2 a: q4 j4 Y8 Y' h注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。% U/ q+ \" g3 c. R6 j6 G
3 J+ `* L6 a$ x5 G  @8 |
执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
9 ~" ?6 |$ I+ x* T) m. q4 ?! c
, v- t( ~' L1 _还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
, E, z7 B; W2 J3 a7 t: q, z2 \! }: ]1 R0 u
taskkill /f /im nginx.exe > null 杀死nginx进程
/ [* R+ r( x( @, l
; a) p5 W/ i# Q- Z- e2 T3、重新载入Nginx:
. M; M) T7 }! {3 R' |% w
3 ~) z$ m& O6 ?+ ]0 R% U2 mC:\server\nginx-1.0.2>nginx.exe -s reload
3 K) Y' D1 W' }6 ~% W, N) Q0 R+ I% u' u
当配置信息修改,需要重新载入这些配置时使用此命令。/ L% i* i$ Y1 ?% Q3 V+ m

' L$ f. \9 p: Z, E! T) t% n3 G& `) `1 s4、重新打开日志文件:
5 y. |6 y" `$ f+ p5 S& }6 d; G; y) h
C:\server\nginx-1.0.2>nginx.exe -s reopen
. k( J3 r+ U, c, @9 ^( [7 ^4 l8 D  J/ \& c) [
5、查看Nginx版本:- }6 |4 ^' N) a' L1 u( w

9 B# K4 k" f) b' K5 cC:\server\nginx-1.0.2>nginx -v
0 E4 ^- M3 o  c: v$ d7 O7 ]( e8 E3 N8 F2 H* e* e
nginx: nginx version: nginx/1.0.27 S( z4 f" `& I: C2 R- _2 j
6 H% n$ `3 t5 m$ P5 t* k

. P' s1 H/ B3 F  ~9 _2 z8 m5 J* t2 m. ~* Z: q
C:\server\nginx-1.0.2>nginx -V* L) D6 [2 i$ x/ L" Q4 O

0 z! j) |2 I; M  H6 z. s! Ynginx: nginx version: nginx/1.0.26 q' i: q7 t" b7 u5 c( I5 h' f9 N

" A0 M% D& K0 ]nginx: TLS SNI support enabled/ y4 S% i5 o6 e
+ I6 M2 s! ?# }) ~9 g3 ?; S
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
# P, s9 ^* ]2 G6 s
& p# g2 I& ]6 I注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
) u! T4 Y3 S- l5 r
( d- M* C! l; a1 I' {  a6 I0 J( [' Y# |7 `8 b" Z  K) ^' N
6、测试或载入指定配置文件:
7 m  I7 o4 l+ [4 ], i1 n$ g6 @" f$ P" D0 T# q) R1 l5 {
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
; B$ n5 l8 M% T+ N0 _
4 {( ^4 p( f4 c" p3 mC:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf. v7 O4 f3 {( Y" F! g
! ]2 J3 x1 k, B+ L
nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok" f) t2 R# `5 R/ g2 }+ v
+ Z0 u& f- N$ g2 }1 b2 m
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful# |: N7 I4 J* ?4 M* A
! y) u# Z- ~. {- b- ?7 x2 ~
载入指定配置文件
9 ~9 e8 x6 a- h+ y5 _8 N0 v; ?5 e
+ d# t9 e* a% n. w8 oC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf
+ N8 L4 d! _/ A1 R8 n1 l% T( {0 \
6 P( I6 X  j( i1 f7 K- H# [/ R
欢迎定制:13928122889
回复

使用道具 举报

524

主题

676

回帖

4597

积分

管理员

积分
4597
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程, Z4 P. U9 I( h& o
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
- ^1 k, Z. S9 q# S$ G9 J$ m start nginx : 启动nginx
+ C" G5 \% k" ` nginx -s reload  :修改配置后重新加载生效& @" _  s' W. l8 g7 s
nginx -s reopen  :重新打开日志文件
  m2 R7 @" M2 N nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确5 v7 `$ n2 p8 I, }
       关闭nginx:
* g" w; u+ ~4 k, |8 s5 Z nginx -s stop  :快速停止nginx/ L3 Z" _9 |+ v9 }! G" J
nginx -s quit  :完整有序的停止nginx
$ p* \( z7 s5 K, V( S7 b 如果遇到报错:: t, h& K  G, h1 A5 d" R, _  I
bash: nginx: command not found# ]6 G; s( G; w/ w6 I2 x
有可能是你再linux命令行环境下运行了windows命令,
8 t' Q# f1 X7 g7 [ 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload. K+ c: E, [) M! T& ]$ `9 t; ?
或者 用windows系统自带命令行工具运行
欢迎定制:13928122889
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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