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

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

[复制链接]

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
发表于 2023-5-23 17:31:14 | 显示全部楼层 |阅读模式
1.启动nginx  z4 N% E3 K3 ~5 z5 X1 F
进入nginx安装目录执行6 L0 |( G: R2 S7 \
9 @+ L; l/ r6 ]" D% T& I
./sbin/nginx -c ./conf/nginx.conf
+ a' ^: s  V4 I9 @# l# h4 H0 E- q# | 2.验证nginx配置文件是否正确# d6 r4 x& R% Y' x; Q* u
3 B4 T2 m+ O+ W7 }
方法1. 进入nginx安装目录sbin下,输入命令6 ]% x, T, B" j6 c; S
5 L) U( N. l: R" H9 `
./nginx -t
1 M# @$ ~* P( w# k: \" \9 \8 S回显test is successful说明配置正确4 T! ]# d; L+ ~; d
  U" Q$ H/ r8 |% I
方法2. 在启动nginx命令 -c 前加 -t
& L8 I/ L0 ~, Q: h" D
; g! E5 Q1 D/ z/ B0 |./sbin/nginx -t -c ./conf/nginx.conf) J1 I. U5 s1 ]( O
3.停止nginx
1 e0 B! l! N+ B3 ^2 L7 e( ?方法1:, l# e/ Z6 N- K

; z% B5 P; ]% S强制停止:
2 S5 D3 [+ k( [( q
1 R! O  ?& H) x9 r4 G8 G./sbin/nginx -s stop& r7 u- }/ \+ d; u9 _" [2 |& @, d1 R
处理完请求后停止:
& ]( B: |0 C. o+ W8 E' E
9 E7 d, L( D- ~8 E4 q! Z1 }8 S: b./sbin/nginx -s quit0 G: B" _+ {; }1 c8 c! h: i
方法2:/ b9 s/ `  g2 e* p8 `+ H

% G" K7 F+ i3 I9 A/ nps -ef|grep nginx
8 Y! ^9 P3 E: n8 d& L) Q3 _找到对应的nginx进程号
+ r- i8 e+ B4 c" S9 h! @# m9 ^$ C
6 n9 Q; m' h! R% L2 v3 S正常停止:4 p7 W4 B9 t- j

# ?7 o1 X6 V3 V1 J2 \! Dkill -15 进程号7 Z& H4 h# A) y0 z
强制停止:- W& n3 a6 l9 f/ X+ u& f" b
4 i" ~+ m) P; }  z8 p1 Q  ~( z
kill -9 进程号3 \. ~3 q0 J7 E5 V( D. q' f
4.重启新加载nginx配置文件3 a/ A2 \0 Q8 ]
方法1. 进入nginx安装目录执行# q7 L* Z: Y' H2 R( \

* c3 x6 j9 ?5 W8 z" G+ a& p./sbin/nginx -s reload
; s2 J  d* E( E* T' h- V* ~5.重启nginx服务- G6 w7 s/ T$ Y8 Y
方法1. 进入nginx安装目录执行0 K, {- F5 `5 ?

: u- s9 c& E) o* a4 H./sbin/nginx -s reopen
  S5 e& e' e. n/ K4 b 方法2.查找当前nginx的PID进程号,并kill( P/ _) d& d+ S' y7 F- C
- i7 ?' Y$ G* M/ t6 ~
ps -ef|grep nginx
/ v- q; ~: q- p# K8 x$ z4 ?' I找到对应的nginx进程号,进行9 Y% e1 `' T. e. u! s
( n5 {2 s+ j& X# \, Q2 t3 D
kill -HUP 进程号. S+ ]5 {0 R* {1 l: q5 `+ n4 O& v3 V
6 e3 k4 _* {' z5 n% M
1 g' G1 X- L. k& P+ d; }
kill -1 进程号
8 _$ L) K+ ~2 ]% s7 G& e6 p% A实现重启nginx服务
( j1 D' n+ o* H1 A6 V! x0 ~
4 e, D/ c$ y! p& a# l( H! [ 6.查看nginx版本信息" Y5 }4 K( r& r) E
1).只显示版本信息
8 |' y5 B/ g, m
$ u! w5 M; e6 S" J进入nginx安装目录执行
4 }3 {4 r* \) G) z& h/ o8 \1 M- ~% g! K: }( L. g. u
./sbin/nginx -v
4 |  B8 O8 p- |" V: U% O- _ 2)显示版本信息和配置信息
7 Z5 h, Y. l3 B" K* N1 i
/ R# K7 l" y% i! W0 @进入nginx安装目录执行
: @7 D- ~5 I( r* B) s& v6 q' D& b& g5 ~0 R
./sbin/nginx -v
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:32:35 | 显示全部楼层
#启动+ B0 S7 s6 o2 [% T) f
#1.直接启动
% J6 T& `# f7 I3 [3 l$ S) [#进入nginx目录,执行启动命令
9 r6 n+ w9 ?- e, t" Z0 e6 C/ ^/ Q) Hcd /usr/local/nginx/sbin% `/ |9 O' x  c1 ]1 ?# t% L" M" s/ D
./nginx, f( O6 \4 c. R( v1 M1 e
# 或者直接' o) `) H# u) _; _8 M1 {& S
/usr/local/nginx/sbin/nginx4 H' t+ @+ k( \' W& C3 O0 V! Q, X
#2.指定配置文件方式启动9 N; H( O4 c( l
#进入nginx目录,执行启动命令1 D1 L( ]! _  j5 P
cd /usr/local/nginx/sbin# K- g& Y5 Q$ U. P! h: t1 `
./nginx -c /usr/local/nginx/conf/nginx.conf* R! X6 D) C4 g% O
#或者
. ?7 {+ D8 j/ b4 M7 X0 F2 P- C% r- e/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2 D' I7 j2 d9 p
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:33:07 | 显示全部楼层
检查ngnix配置文件
3 y/ P  C! J# `8 D% Z' v( Q3 e
#进入nginx目录+ B1 S& m& F0 l7 ~) Z, \
cd /usr/local/nginx/sbin
- E: m. k, X( X8 T9 V7 R5 }$ O2 e#检查配置文件是否有语法操作
' O, b$ Y% s- ~! i( \% m  [./nginx -t% s1 c6 y8 w; j2 z, s0 t9 X
# 或者显示指定配置文件& e8 k9 @5 \9 J- P& F/ m
./nginx -t -c /usr/local/nginx/conf/nginx.conf, n+ a& j3 w. H- N9 S
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:33:51 | 显示全部楼层
平滑的重启,修改配置后,重新加载配置
7 d, l1 m6 A5 D- {& |, S5 W' a# e7 c) T8 r
#进入nginx目录
, n! O" g9 o. h% Qcd /usr/local/nginx/sbin4 U! s# \3 I) g1 s. s3 @+ i
#执行重载命令
5 Q$ a- U/ y$ [* W9 {; s./nginx -s reload/ U1 m6 V- G2 Z- [- s& l

2 D/ {  x+ o' t6 l% ?; Unginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。! E( `9 O/ |3 N9 c  K
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件7 L$ \4 }6 A1 k3 S' e3 K

; i5 a8 f% [/ [: q1 W5 O6 p% u# YNginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)! k7 V, |( Z9 W
Nginx启动新的worker进程,采用新的配置文件5 X2 w$ y# Z4 x) K( z9 H7 q  c
Nginx将新的请求分配新的worker进程
% Y7 k( c" N; [. ^Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
6 i5 D9 ]$ X/ c8 b: r; u重复上面过程,知道全部旧的worker进程都被关闭掉。  B& {( M. v" G1 A7 Z! W/ P
所以,重启之后,master的进程号不变,worker的进程号会改变。
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:34:10 | 显示全部楼层
关闭nginx
5 K* o( i# O! x2 X: ^7 b  i( }# i$ A/ b$ V8 H7 t0 [: U
#进入nginx目录3 m% T" {3 j" V6 P# X( ~
cd /usr/local/nginx/sbin* C& c6 b* O3 p* d; E
# 快速停止nginx
, H5 h( u, O) g1 L: M6 @! C) `" t./nginx -s stop
+ Y1 Q8 @: F0 @' e  B0 |# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx0 g' B/ C0 l, @6 K, v
./nginx -s quit
1 F* `3 p+ l/ w: c, o, j
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:34:32 | 显示全部楼层
reopen重新打开日志文件
3 S; _' U% U, {5 L. ]
& I& o, t. Y" @7 w4 W6 B8 z#进入nginx目录
2 E' I) s$ F6 Hcd /usr/local/nginx/sbin
2 v* a! w# A  y: L! o# 重新打开日志文件
; Q' ]3 I) y! q: |./nginx -s reopen+ x* v! ^: G: A- z' ?
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:34:53 | 显示全部楼层
当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
' r* i  _6 [% f& F+ i) x% s当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。8 X8 _! ^1 u6 K0 D" k# i) M
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
& _/ `( G! {6 M* M一般我们需要两步:
  w: L% `2 n+ t) L$ Y% Z, p
4 W2 F6 q+ A' J0 K, \移走文件并重命名% N! J& ?, l+ d( x  m8 J7 i* {
利用 nginx 的 reopen 功能,完成新日志文件的生成。
$ z; e2 k) E- h* t; x. i! z/ r  v参考地址,感谢博主分享
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:35:39 | 显示全部楼层
其他命令重启、关闭nginx
- s4 X6 }- U6 O$ N- Y* c; ]8 Q* ?! u
# 查看进程号,下图  master的为主进程号
  m7 `3 v. l4 h" _, k* H& bps -ef | grep nginx
$ b4 l0 |5 ?" F, F5 c8 R  t#从容停止Nginx, m, u. g% q5 i' o
kill -QUIT 主进程号
% w* u1 z- P0 w4 `8 z#快速停止Nginx. T. d+ a3 p* E& O' y& s
kill -TERM 主进程号6 k2 c, I' [! e* d- ]1 x' O+ f
#强制停止Nginx
' B5 X! B% D! F: r- kpkill -9 nginx
; o' h7 @  b! S- J#平滑重启nginx:3 V1 c3 u0 }; N+ g
kill -HUP 主进程号
& A' J% @/ R% T! Z+ \
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

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

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

1、启动:" a) |0 Q' j$ e/ [

- @- s9 w# s* K3 f) KC:\server\nginx-1.0.2>start nginx- v# z" ^8 G0 f; F' W/ i' S

6 F6 }# }- M9 `6 q7 ^
' J+ S% x( g8 h' m8 K: M, [# \9 k! r5 `$ n
C:\server\nginx-1.0.2>nginx.exe
& G- \, L- H* G. e
2 A+ \0 Q8 x7 S. A# K7 U: B注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
# [9 T6 r6 ^8 w6 G8 |
' ^: U1 X: T! U- h) x2 ]如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
2 ?. w) \7 ]9 I8 D8 ?) Y3 w: L
; [" m2 E) Y. W( g& _2、停止:$ h" E8 ]# v8 [) p. @' {/ X% |' Q

. T8 {! |/ ]: a! x" C9 qC:\server\nginx-1.0.2>nginx.exe -s stop
- R& G. N1 l8 u+ C* l2 r; G. `: @# V; w# E2 h/ Q

* j  u* M$ Y- G2 n0 D" H# f+ c- a! Q3 d$ Q5 n8 ^  N
C:\server\nginx-1.0.2>nginx.exe -s quit
9 S$ l2 _+ i2 V- e5 W8 G8 W2 r3 L+ B. l; N" |
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
$ V2 W0 T3 X. M0 s
& o( u& V( p$ |/ ?! q执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe
* t0 Y8 ~3 ]2 [1 q" M
. [0 e+ J& [9 U5 Z  C6 w/ v( b还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用
: }0 a7 F. U0 \* ]& h, m8 T; {3 w5 R# _! {  X
taskkill /f /im nginx.exe > null 杀死nginx进程" X' G+ A9 a- f5 A7 u

8 V6 A9 @6 S6 k( R; C. v3、重新载入Nginx:
2 b8 o8 Y0 h5 s3 T: [6 S; ]8 c
5 J% i8 D' h- h9 ^% oC:\server\nginx-1.0.2>nginx.exe -s reload* O6 h, @6 p  a. F. n
! E& a. X4 @( o- u" N9 W' y* X
当配置信息修改,需要重新载入这些配置时使用此命令。  t  y3 y$ `3 i; c: v

3 h# A+ `3 S5 p6 H5 O" c* {4、重新打开日志文件:
/ O) Q$ ]) q# ~4 g/ c2 v' y/ D
; ^: S) x# j: L) WC:\server\nginx-1.0.2>nginx.exe -s reopen7 c/ |' s! [. e
$ l# ?" T7 V  C8 k" H! o  Y
5、查看Nginx版本:% d8 f( W) W6 w# u2 V4 I! ^3 S

8 _/ p% v. p. b4 \- L7 C2 a' q" YC:\server\nginx-1.0.2>nginx -v
& L! R8 c$ K( e& p' R! g7 n
5 @9 s6 i( R; G* o" znginx: nginx version: nginx/1.0.2
9 T* f: m8 m. Y: U6 }( T- G7 x: k5 N6 i; I

$ i) D6 f/ r! F( M
% w! D7 ~0 I) p# uC:\server\nginx-1.0.2>nginx -V
0 |6 G/ S9 V+ O+ G) d
% t( }9 z4 H; W! ?nginx: nginx version: nginx/1.0.2
. M- c1 i  J$ W1 O. m& S! f& ~" E$ r8 H
nginx: TLS SNI support enabled2 c' E5 R0 N" L) F3 Q5 y9 B3 P

5 t* V  c; ]- h, }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_module1 |9 [6 j  o+ t. U' R
4 w. C9 R/ [/ o) O
注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。
3 D3 O) o) Q1 {
$ M  N3 m! J# Z3 P# |2 }& n
* I( E0 M0 J& \+ r: x% z! ~6、测试或载入指定配置文件:
5 k( ?, z& c0 q  Y0 t- e
* F4 p3 X5 p- x5 j' I% g) B注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:, r! ~; z) x; r( R1 T/ ]7 D: D# s% {

/ S7 C7 O* p$ C- c; c9 @C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf/ T7 j! C, G, T

& Q) z) U% K" D# p$ ~' Qnginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok
, U4 c; l1 {) H' d$ k: Y% d( E. {( L
nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful- C3 ^# e; ]4 Z' F9 J

5 W4 |- a: Y) a* Z$ E9 ?载入指定配置文件
1 R% B9 q2 d$ i6 f+ E5 X! G
0 o, s  _5 w5 F, l  r! ZC:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf( r, l* t" K- |. S# E5 D

  h% o& g1 T8 K/ v9 m4 Z; H0 v/ E
欢迎定制:13928122889
回复

使用道具 举报

536

主题

679

回帖

4645

积分

管理员

积分
4645
QQ
 楼主| 发表于 2023-5-23 17:38:36 | 显示全部楼层
注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
, E$ f9 I3 ~! f! E 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
) N  Y" e! T; f5 V  V9 S start nginx : 启动nginx
( C9 Z- @2 T1 H/ x* q; q/ H( B! n nginx -s reload  :修改配置后重新加载生效/ i* \* h6 ?$ {- |! q# D& U+ a
nginx -s reopen  :重新打开日志文件
9 L& X4 u& y: W4 l$ C nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
- C7 V; `* g" ~* T, z* ]  e       关闭nginx:
; ?, t1 N( P. D: t6 s" S7 v nginx -s stop  :快速停止nginx
4 c, z8 d% [- ?- T8 | nginx -s quit  :完整有序的停止nginx
! @9 A0 x8 f- Z) F6 C 如果遇到报错:
' |1 Y8 j6 k. }3 j2 ]6 s% j+ I bash: nginx: command not found" C; e% f  r2 Y, P/ B
有可能是你再linux命令行环境下运行了windows命令,
' t  B/ ]* `% w" S/ y, o 如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
0 q" W3 M0 S' d' |1 Q8 E+ z1 @. |; c 或者 用windows系统自带命令行工具运行
欢迎定制:13928122889
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-4 19:38 , Processed in 0.018540 second(s), 3 queries , Redis On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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