windows的bat脚本控制nginx
2024-11-04 15:06:54 # 技术笔记

测试用到nginx了,但是频繁使用命令太麻烦,集成到bat脚本里面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
@echo off
rem 提供Windows下nginx的启动,重启,关闭功能

echo ==================begin========================

cls
::ngxin 所在的盘符
set NGINX_PATH=D:

::nginx 所在目录
set NGINX_DIR=D:\Environment\nginx\
color 0c
TITLE Nginx 管理程序增强版

CLS

:MENU

echo. _nginx 进程list:
::tasklist|findstr /i "nginx.exe"
tasklist /fi "imagename eq nginx.exe"

echo.
::*****************************
echo.
echo. [1] 启动Nginx
echo. [2] 关闭Nginx
echo. [3] 重启Nginx
echo. [4] 刷新控制台
echo. [5] 重新加载Nginx配置文件
echo. [6] 检查测试nginx配置文件
echo. [7] 查看nginx version
echo. [0] 退 出
echo.

echo.请输入选择的序号:
set /p ID=
IF "%id%"=="1" GOTO start
IF "%id%"=="2" GOTO stop
IF "%id%"=="3" GOTO restart
IF "%id%"=="4" GOTO MENU
IF "%id%"=="5" GOTO reloadConf
IF "%id%"=="6" GOTO checkConf
IF "%id%"=="7" GOTO showVersion
IF "%id%"=="0" EXIT
PAUSE

::********************
::启动
:start
call :startNginx
GOTO MENU

::停止
:stop
call :shutdownNginx
GOTO MENU

::重启
:restart
call :shutdownNginx
call :startNginx
GOTO MENU

::检查测试配置文件
:checkConf
call :checkConfNginx
GOTO MENU

::重新加载Nginx配置文件
:reloadConf
call :checkConfNginx
call :reloadConfNginx
GOTO MENU

::显示nginx版本
:showVersion
call :showVersionNginx
GOTO MENU


::***************
::底层
::***************
:shutdownNginx
echo.
echo.关闭Nginx......
taskkill /F /IM nginx.exe > nul
echo.OK,关闭所有nginx 进程
goto :eof

:startNginx
echo.
echo.启动Nginx......
IF NOT EXIST "%NGINX_DIR%nginx.exe" (
echo "%NGINX_DIR%nginx.exe"不存在
goto :eof
)

%NGINX_PATH%
cd "%NGINX_DIR%"

IF EXIST "%NGINX_DIR%nginx.exe" (
echo "start '' nginx.exe"
start "" nginx.exe
)
echo.OK
goto :eof


:checkConfNginx
echo.
echo.检查测试 nginx 配置文件......
IF NOT EXIST "%NGINX_DIR%nginx.exe" (
echo "%NGINX_DIR%nginx.exe"不存在
goto :eof
)

%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -t -c conf/nginx.conf

goto :eof

:: 重新加载 nginx 配置文件
:reloadConfNginx
echo.
echo.重新加载 nginx 配置文件......
IF NOT EXIST "%NGINX_DIR%nginx.exe" (
echo "%NGINX_DIR%nginx.exe"不存在
goto :eof
)

%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -s reload

goto :eof

::显示nginx版本
:showVersionNginx
echo.
%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -V
goto :eof