Nginx必備知識3:配置文件通用語法及常用命令行

  • Nginx配置語法

    每個模塊都有自己的配置規則,所有模塊遵循類似的配置語法。

    nginx配置文件,是一個ask文本文件。

  • 配置文件由指令與指令塊構成
  • 每條指令以;分號結尾,指令與參數間以空格符號分隔

    此處的空格可以是一個或多個。

    參數也可以有多個。

  • 指令塊以{}大括號將多條指令組織在一起

    指令塊可以嵌套。

  • include語句允許組合多個配置文件以提升可維護性
  • 使用#符號添加註釋,提高可讀性
  • 使用$符號使用變量

    這裏的變量是Nginx框架提供的,而非模塊提供的。

  • 部分指令的參數支持正則表達式
  • 配置參數的時間

    時間、空間可以有多種單位,並不要求全部統一。

  • 基本概念

  • 配置項名

  • 配置項值

  • 塊配置項

    • 塊配置項名
    • 大括號
  • 常用命令行

    命令行使用格式與Linux類似, 命令+選項+參數

    • -? -h幫助
    • -c 使用指定的配置文件
    • -g 指定配置指令
    • -p 指定運行目錄
    • -s 發送信號
      • stop
      • quit
      • reload
      • reopen
    • -t -T測試配置文件是否有語法錯誤
    • -v -V打印nginx的版本信息、編譯信息
  • 命令行使用之重載配置文件

    修改配置文件中的一些值,之後執行:

    ./nginx -s reload

    就可以在不停止對客戶的服務基礎上應用新的配置。

  • 命令行使用之熱部署
    1. 備份原來的nginx二進制文件

    2. 將最新的nginx二進制文件複製過來

    3. master發送USR2信號,告知要進行熱部署版本升級

      kill -USR2 [master進程號]

      之後就會用最新的nginx啓動一個新的master進程;

      新的master進程會啓動新的worker進程;

      新的請求會進入到新的worker

      舊的worker會停止監聽,以此實現平滑過渡。

    4. 向舊的master發送WINCH信號,使其優雅的關閉worker進程

      kill -WINCH [master進程號]

      舊的master進程還在,所有的請求都會進入新的master新的worker,但是有可能有需求再用舊的master處理,就可以用reload命令重啓舊的worker,以實現版本回退。

  • 命令行使用之切割日誌文件

    crontab中執行一個腳本:

    1. cp file.log newname

      複製log,給一個新名字

    2. ./nginx -s reopen

      重寫log

  • Reference

  1. Nginx核心知識100講:9-10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章