Windows服務啓動nginx,並按日期切割日誌

做爲客戶未徹底準備好切換到Linux的暫時性方案。
本文參考了許多網站上的資料,作了簡單的整理。nginx

1、做爲服務啓動nginx

實際沒有使用這個方法,緣由:不能生成日誌文件,不知道怎麼實現日誌文件的切割。git

Nginx官方沒有提供做爲服務啓動nginx的方案。以服務啓動nginx依賴於winsw,當前最新版是1.19。github

使用步驟

  1. 重命名winsw-1.19-bin.exe 爲nginx-server.exe。app

  2. 新建定義服務的配置文件:工具

    <service>
      <id>nginx</id>
      <name>nginx</name>
      <description>This service runs nginx as a service.</description>
      <executable>C:\nginx-1.11.3\nginx.exe</executable>
      <startmode>Automatic</startmode>
      <startargument></startargument><!-- nginx start config -->
      <stopargument>-s stop</stopargument>
      <logpath>C:\nginx-1.11.3\logs</logpath>
      <logmode>append</logmode>
    </service>
  3. 安裝服務:nginx-server.exe install(最好以管理員方式運行)。網站

  4. 步驟3以管理員方式運行,命令行啓動nginx服務時也要有管理員權限:net start nginx命令行

  5. 中止服務:net stop nginx日誌

2、編寫腳本

@rem 關閉腳本的每行輸出
@echo off
@rem 獲取當前時間
set ToDay=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

@rem 關閉nginx
@rem net stop nginx
@rem 重命名日誌文件
move C:\nginx-1.11.3\logs\access.log C:\nginx-1.11.3\logs\%ToDay%_access.log

@rem 啓動nginx
@rem net start nginx
@rem 從新打開nginx日誌文件
@rem C:\nginx-1.11.3\nginx.exe -s reopen

@rem 從新啓動nginx
@rem C:\nginx-1.11.3\nginx.exe -s reload
@rem 從新啓動nginx
C:\nginx-1.11.3\nginx.exe -p C:\nginx-1.11.3\ -s reload
@rem 等待用戶輸入任意內容

3、定時啓動腳本

計算機--管理--系統工具--計劃任務程序 中定製計劃任務。code

相關文章
相關標籤/搜索