« Chromeでパスワードの自動入力が出来なくなった件 | トップページ | Windowsでnginxとlegoを用いてLet's Encryptからhttp方式によるSSL証明書の発行を行う »

2022年3月31日 (木)

NginxをWindowsのコマンドラインから操作するバッチファイル

手動でコマンドラインから立ち上げると停止する時が一々面倒だったのでgithubで公開されていたバッチファイルを基に自分が使いやすい様に修正してみた。

NginxはTLSv1.2に対応しないサーバーアプリをTLSv1.2に対応させるべくSSL Offloadして使用できるかテスト中。
主に04webServerとxmailで試して今の所は問題なく動作している。
xmailはTLSv1で対応が止まっていてアップデートは期待出来無さそうなのと04WebServerは一応作者がリクエストを受けて対応するみたいだがいつになるか分からないので。
ブラウザがアップデート入ってTLSv1.2に対応しないサイトへ接続出来なくなったんですよね...

SSL Offloadの件はその内記事にする予定。

バッチファイル公開元URL:(中国語です)
https://github.com/aitlp/nginx-service-bat/blob/master/nginx.bat

以下私が修正したバッチファイル内容

-----------------------------------------------------------------------------------------------

@echo off
rem Windows上でNginxの起動・再起動・終了機能を提供

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

cls
rem nginxのディスクディレクトリ
set NGINX_PATH=C:

rem nginxのディレクトリ
set NGINX_DIR=C:\nginx-1.20.2\
color 0a
TITLE Nginxサービスマネジメントコンソール

CLS

echo.
echo. *** Nginxハイパーバイザー ***
echo.

:MENU
set id=
echo.
echo. ***** nginx プロセスリスト ******
rem tasklist|findstr /i "nginx.exe"
tasklist | findstr nginx.exe

echo.

if ERRORLEVEL 1 (
echo nginx.exeは起動していません
goto reselect1
) else (
echo nginx.exeは起動中です
goto reselect2
)

echo.
rem *************************************************************************************************************
:reselect1
echo.
echo [1] Nginxの起動
echo [2]
echo [3]
echo [4] コンソール画面のリフレッシュ
echo [5]
echo [6] Nginx設定ファイルのチェック
echo [7] Nginxのバージョン確認
echo [8] エラーログを開く
echo [9] エラーログの削除
echo [0] 終了
echo.
set id=
set /P ID="操作する番号を入力してください: "
IF "%id%"=="1" GOTO start
rem IF "%id%"=="2" GOTO stop
rem IF "%id%"=="3" GOTO restart
IF "%id%"=="4" GOTO MENU
rem IF "%id%"=="5" GOTO reloadConf
IF "%id%"=="6" GOTO checkConf
IF "%id%"=="7" GOTO showVersion
IF "%id%"=="8" GOTO openErrorLog1
IF "%id%"=="9" GOTO delErrorLog1
IF "%id%"=="0" EXIT
echo 無効な入力です %id%
goto reselect1

:reselect2
echo.
echo [1]
echo [2] Nginxの停止
echo [3] Nginxの再起動
echo [4] コンソール画面のリフレッシュ
echo [5] Nginx設定ファイルの再読み込み
echo [6] Nginx設定ファイルのチェック
echo [7] Nginxのバージョン確認
echo [8] エラーログを開く(Nginxは終了します)
echo [9] エラーログの削除(Nginxは終了します)
echo [0] 終了
echo.

set id=
set /P ID="操作する番号を入力してください: "
rem 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%"=="8" GOTO openErrorLog
IF "%id%"=="9" GOTO delErrorLog
IF "%id%"=="0" EXIT
echo 無効な入力です %id%
  goto reselect2
PAUSE
GOTO :eof
rem *************************************************************************************************************
rem スタート
:start
call :StartNginx
GOTO MENU

rem ストップ
:stop
call :ShutdownNginx
GOTO MENU

rem リスタート
:restart
call :ShutdownNginx
call :StartNginx
GOTO MENU

rem 設定ファイルのチェック
:checkConf
call :CheckConfNginx
GOTO MENU

rem Nginxの設定ファイルを再読み込み
:reloadConf
call :CheckConfNginx
call :reloadConfNginx
GOTO MENU

rem nginxのバージョンを表示
:showVersion
call :ShowVersionNginx
GOTO MENU

rem エラーログを開く
:openErrorLog
call :ShutdownNginx
:openErrorLog1
call :OpenErrorLogNginx
GOTO MENU

rem エラーログを削除
:delErrorLog
call :ShutdownNginx
:delErrorLog1
call :DelErrorLogNginx
GOTO MENU

rem *************************************************************************************
rem サブルーチン
rem *************************************************************************************
:ShutdownNginx
echo.
echo shutdown Nginx......
taskkill /F /IM nginx.exe > nul
echo 全てのNginxプロセスを停止しました
goto :eof

:StartNginx
echo.
echo start 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" (
start nginx.exe
)

timeout /T 2 > nul
echo Nginxを起動しました
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

rem 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

rem nginxのバージョンを表示
:ShowVersionNginx
echo.
%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -V
goto :eof

rem エラーログを開く
:OpenErrorLogNginx
echo.
echo エラーログを開く......
%NGINX_PATH%
cd "%NGINX_DIR%"
start logs/error.log
goto :eof

rem エラーログを削除
:DelErrorLogNginx
echo.
echo エラーログを削除......
%NGINX_PATH%
cd "%NGINX_DIR%"
del logs\error.log
goto :eof

|

« Chromeでパスワードの自動入力が出来なくなった件 | トップページ | Windowsでnginxとlegoを用いてLet's Encryptからhttp方式によるSSL証明書の発行を行う »

パソコン・インターネット」カテゴリの記事

自宅サーバ関連」カテゴリの記事

ソフトウェア」カテゴリの記事

nginx」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« Chromeでパスワードの自動入力が出来なくなった件 | トップページ | Windowsでnginxとlegoを用いてLet's Encryptからhttp方式によるSSL証明書の発行を行う »