【nginx】服務的信號控制

目錄

          • 1. 說明
          • 2. 常用信號及作用
          • 3. 信號控制的具體操作
            • 3.1 獲取 Nginx 主進程 PID
            • 3.2 發送信號
          • 4. 應用場景
            • 4.1 重新加載配置文件
            • 4.2 日志切割
          • 5. 平滑升級 Nginx
          • 6. 注意事項

1. 說明
  • 1.Nginx 的信號控制是其管理服務的重要機制,通過向主進程發送特定信號,可以實現對 Nginx 的平滑重啟、重新加載配置、關閉服務等操作,而無需停止服務或中斷用戶請求。
2. 常用信號及作用
信號發送方式作用
TERMINTkill -TERM <PID>kill -INT <PID>立即關閉 Nginx 服務,所有工作進程和主進程將直接退出,未完成的請求會被中斷。
QUITkill -QUIT <PID>優雅關閉 Nginx 服務,主進程會等待所有工作進程完成當前請求后再退出。
HUPkill -HUP <PID>重新加載配置文件,主進程會啟動新的工作進程,并平滑關閉舊的工作進程。
USR1kill -USR1 <PID>重新打開日志文件,用于日志切割,不會中斷服務。
USR2kill -USR2 <PID>平滑升級 Nginx,啟動新的主進程和新的工作進程,舊進程繼續處理剩余請求。
WINCHkill -WINCH <PID>優雅關閉工作進程,通常與 USR2 配合使用,用于平滑升級時關閉舊工作進程。
3. 信號控制的具體操作
3.1 獲取 Nginx 主進程 PID
  • 1.Nginx 主進程的 PID 通常存儲在配置文件中指定的 PID 文件中,默認路徑為 /usr/local/nginx/logs/nginx.pid 或 /var/run/nginx.pid。
  • 2.可以通過以下命令獲取:cat /usr/local/nginx/logs/nginx.pid
3.2 發送信號
  • 1.使用 kill 命令向主進程發送信號。
  • 2.重新加載配置文件:kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
  • 3.優雅關閉服務:kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid)
  • 4.重新打開日志文件(用于日志切割):kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
4. 應用場景
4.1 重新加載配置文件
  • 1.當修改了 Nginx 配置文件(如 nginx.conf)后,無需停止服務即可使新配置生效
  • 2.kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
  • 3.nginx -s reload
4.2 日志切割
  • 1.為了防止日志文件過大,可以定期切割日志。
  • 2.重命名當前日志文件:mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.old
  • 3.向 Nginx 主進程發送 USR1 信號,重新打開日志文件:kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
  • 4.壓縮或歸檔舊日志文件:gzip /usr/local/nginx/logs/access.log.old
5. 平滑升級 Nginx
  • 1.當需要升級 Nginx 時,可以使用 USR2 和 WINCH 信號實現平滑升級:
  • 2.啟動新的 Nginx 二進制文件:/path/to/new/nginx -c /path/to/nginx.conf
  • 3.新進程會作為主進程運行,舊主進程的 PID 會被重命名為 .oldbin。
  • 4.向舊主進程發送 USR2 信號,啟動新的工作進程:kill -USR2 $(cat /var/run/nginx.pid)
  • 5.向舊主進程發送 WINCH 信號,優雅關閉舊工作進程:kill -WINCH $(cat /var/run/nginx.pid.oldbin)
  • 6.確認新進程正常運行后,關閉舊主進程:kill -QUIT $(cat /var/run/nginx.pid.oldbin)
6. 注意事項
  • 1.信號發送對象:始終向 Nginx 主進程發送信號,而不是工作進程。
  • 2.日志文件權限:確保 Nginx 有權限寫入日志文件,否則 USR1 信號可能無效。
  • 3.配置文件語法檢查:在重新加載配置文件前,建議先檢查語法是否正確:nginx -t
  • 4.平滑升級風險:在升級過程中,確保新舊版本的配置文件兼容,避免服務中斷。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77768.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu下展銳刷機工具spd_dump使用說明

spd_dump使用說明 源碼地址&#xff1a;https://github.com/ilyakurdyukov/spreadtrum_flash 編譯環境準備&#xff1a; sudo apt update sudo apt install git sudo apt install build-essential sudo apt install libusb-1.0-0-devIf you create /etc/udev/rules.d/80-spd…

鴻蒙NEXT開發LRUCache緩存工具類(單例模式)(ArkTs)

import { util } from kit.ArkTS;/*** LRUCache緩存工具類&#xff08;單例模式&#xff09;* author 鴻蒙布道師* since 2025/04/21*/ export class LRUCacheUtil {private static instance: LRUCacheUtil;private lruCache: util.LRUCache<string, any>;/*** 私有構造函…

筆記:react中 父組件怎么獲取子組件中的屬性或方法

在子組件中我們可以使用下面兩個方法去暴露你所要放行的屬性或方法&#x1f447; 1.useImperativeHandle 2.orwardRef 搭配使用例子 import React, { useState, forwardRef, useImperativeHandle } from "react"function Son(props, ref) {const [data] useStat…

《潯川代碼編輯器v2.0內測(完整)報告》

一、測試概述 潯川代碼編輯器v2.0經過為期五周的封閉內測&#xff0c;累計提交了186份測試報告。本次內測主要針對v2.0新增的多語言支持、AI輔助編碼、性能優化等核心功能進行全面驗證。 二、測試環境 - 硬件配置&#xff1a;i7-12700H/16GB RAM/512GB SSD - 操作系統&#xf…

ubuntu18.04安裝QT問題匯總

1、Could not determine which ”make“ command to run. Check the ”make“ step in the build configuration.” sudo apt-get install clang sudo apt-get install build-essential sudo apt-get install libqt4-dev 2、fatal error: sqlite3.h: No such …

基于單片機的BMS熱管理功能設計

標題:基于單片機的BMS熱管理功能設計 內容:1.摘要 摘要&#xff1a;在電動汽車和儲能系統中&#xff0c;電池管理系統&#xff08;BMS&#xff09;的熱管理功能至關重要&#xff0c;它直接影響電池的性能、壽命和安全性。本文的目的是設計一種基于單片機的BMS熱管理功能。采用…

CSS基礎-即學即用 -- 筆記1

目錄 前言CSS 基礎1. 層疊樣式表來源理解優先級源碼順序經驗法則繼承inherit 關鍵字initial 關鍵字 2. 相對單位em 和 rem響應式面板視口的相對單位使用vw定義字號使用calc()定義字號自定義屬性&#xff08;即CSS變量&#xff09; 3. 盒模型調整盒模型 前言 只需一分鐘就能學會…

Linux中服務器時間同步

簡單介紹 在 redhat 8 之前&#xff0c;時間同步服務是使用 NTP&#xff08;網絡時間協議&#xff09;來實現的&#xff0c;在 redhat 8 及之 后使用是 NTP 的實現工具 chrony 來實現時間同步。 在 redhat 8 及之后&#xff0c;默認情況下已經安裝好 chrony 軟件并已經開機啟…

讓SQL飛起來:搭建企業AI應用的SQL性能優化實戰

我上一篇文章已經講解過了如何使用公開的AI模型來優化SQL.但這個優化方法存在一定的局限性.因為公開的AI模型并不了解你的數據表結構是什么從而導致提供的優化建議不太準確.而sql表結構又是至關重要的安全問題,是不能泄露出去的.所以在此背景下我決定搭建一個自己的AI應用在內網…

小迪安全-112-yii反序列化鏈,某達oa,某商場,影響分析

yii是和tp一樣的框架 入口文件 web目錄下 相對tp比較簡單一些&#xff0c;對比tp找一下他的url結構 對應的位置結構 這個contorllers文件的actionindex就是觸發的方法 控制器&#xff0c;指向的index文件&#xff0c;就可以去視圖模塊看index文件 這就是前端展示的文件 自…

自定義多頭注意力模型:從代碼實現到訓練優化

引言 在自然語言處理和序列生成任務中,自注意力機制(Self-Attention)是提升模型性能的關鍵技術。本文將通過一個自定義的PyTorch模型實現,展示如何構建一個結合多頭注意力與前饋網絡的序列生成模型(如文本或字符生成)。該模型通過創新的 MaxStateSuper 模塊實現動態特征…

動態LOD策略細節層級控制:根據視角距離動態簡化遠距量子態渲染

動態LOD策略在量子計算可視化中的優化實現 1. 細節層級控制:動態簡化遠距量子態渲染 在量子計算的可視化中,量子態通常表現為高維數據(如布洛赫球面或多量子比特糾纏態)。動態LOD(Level of Detail)策略通過以下方式優化渲染性能: 距離驅動的幾何簡化: 遠距離渲染:當…

Java 泛型使用教程

簡介 Java 泛型是 JDK 5 引入的一項特性&#xff0c;它提供了編譯時類型安全檢測機制&#xff0c;允許在編譯時檢測出非法的類型。泛型的本質是參數化類型&#xff0c;也就是說所操作的數據類型被指定為一個參數。 泛型的好處&#xff1a; 編譯期檢查類型安全 避免強制類型轉…

Leetcode - 周賽446

目錄 一、3522. 執行指令后的得分二、3523. 非遞減數組的最大長度三、3524. 求出數組的 X 值 I四、3525. 求出數組的 X 值 II 一、3522. 執行指令后的得分 題目鏈接 本題就是一道模擬題&#xff0c;代碼如下&#xff1a; class Solution {public long calculateScore(String…

【更新完畢】2025泰迪杯數據挖掘競賽A題數學建模思路代碼文章教學:競賽論文初步篩選系統

完整內容請看文末最后的推廣群 基于自然語言處理的競賽論文初步篩選系統 基于多模態分析的競賽論文自動篩選與重復檢測模型 摘要 隨著大學生競賽規模的不斷擴大&#xff0c;參賽論文的數量激增&#xff0c;傳統的人工篩選方法面臨著工作量大、效率低且容易出錯的問題。因此&…

計算機視覺與深度學習 | RNN原理,公式,代碼,應用

RNN(循環神經網絡)詳解 一、原理 RNN(Recurrent Neural Network)是一種處理序列數據的神經網絡,其核心思想是通過循環連接(隱藏狀態)捕捉序列中的時序信息。每個時間步的隱藏狀態 ( h_t ) 不僅依賴當前輸入 ( x_t ),還依賴前一時間步的隱藏狀態 ( h_{t-1} ),從而實現…

AI速讀:解鎖LLM下Game Agent的奇妙世界

在 AI 浪潮中&#xff0c;大語言模型&#xff08;LLMs&#xff09;正重塑游戲智能體格局。想知道基于 LLMs 的游戲智能體如何運作&#xff0c;在各類游戲中有何驚艷表現&#xff0c;未來又將走向何方&#xff1f; 大型語言模型&#xff08;LLMs&#xff09;的興起為游戲智能體的…

【每日八股】復習計算機網絡 Day3:TCP 協議的其他相關問題

文章目錄 昨日內容復習TCP 的四次揮手&#xff1f;TCP 為什么要四次揮手&#xff1f;在客戶端處于 FIN_WAIT_2 狀態時&#xff0c;如果此時收到了亂序的來自服務端的 FIN 報文&#xff0c;客戶端會如何處理&#xff1f;何時進入 TIME_WAIT 狀態&#xff1f;TCP 四次揮手丟了怎么…

學習筆記十五——rust柯里化,看不懂 `fn add(x) -> impl Fn(y)` 的同學點進來!

&#x1f9e0; Rust 柯里化從零講透&#xff1a;看不懂 fn add(x) -> impl Fn(y) 的同學點進來&#xff01; &#x1f354; 一、什么是柯里化&#xff1f;先用一個超好懂的生活比喻 假設你在點一個漢堡&#xff1a; 你說&#xff1a;我要點一個雞腿漢堡&#xff01; 店員…

深入理解 TCP 協議 | 流量、擁塞及錯誤控制機制

注&#xff1a;本文為 “TCP 協議” 相關文章合輯。 原文為繁體&#xff0c;注意術語描述差異。 作者在不同的文章中互相引用其不同文章&#xff0c;一并匯總于此。 略作重排&#xff0c;如有內容異常&#xff0c;請看原文。 TCP 三向交握 (Three-way Handshake) 2016-12-21 …