Nginx R31 doc-02-nginx 基本功能

来源:https://www.cnblogs.com/houbbBlogs/p/18200947
-Advertisement-
Play Games

nginx 系列 Nginx-01-聊一聊 nginx Nginx-01-Nginx 是什麼 Nginx-02-為什麼使用 Nginx Nginx-02-Nginx Ubuntu 安裝 + windows10 + WSL ubuntu 安裝 nginx 實戰筆記 Nginx-02-基本使用 Ngin ...


nginx 系列

Nginx-01-聊一聊 nginx

Nginx-01-Nginx 是什麼

Nginx-02-為什麼使用 Nginx

Nginx-02-Nginx Ubuntu 安裝 + windows10 + WSL ubuntu 安裝 nginx 實戰筆記

Nginx-02-基本使用

Nginx-03-Nginx 項目架構

Nginx-04-Docker Nginx

Nginx-05-nginx 反向代理是什麼?windows 下如何配置使用 nginx

Nginx-06-nginx 彙總入門介紹

Nginx R31 doc 官方文檔-01-nginx 如何安裝

Nginx R31 doc-02-nginx 基本功能

Nginx R31 doc-03-HTTP Load Balancing HTTP 負載均衡

Nginx R31 doc-04-HTTP Health Checks

Nginx R31 doc-05-Dynamic Configuration of Upstreams with the NGINX Plus API 使用 NGINX Plus API 動態配置上游伺服器

Nginx R31 doc-06-Accepting the PROXY Protocol

Nginx R31 doc-07-內容緩存

Nginx R31 doc-08-Configuring NGINX and NGINX Plus as a Web Server 配置 NGINX 和 NGINX Plus 作為 Web 伺服器

Nginx R31 doc-09-Serving Static Content 靜態內容

Nginx R31 doc-10-NGINX Reverse Proxy 反向代理

Nginx R31 doc-11-Compression and Decompression 壓縮與解壓縮

Nginx R31 doc-12-NGINX SSL Termination 安全加密

Nginx R31 doc-13-Limiting Access to Proxied HTTP Resources 訪問限流

Nginx R31 doc-14-Dynamic Denylisting of IP Addresses 動態拒絕IP地址

Nginx R31 doc-15-Live Activity Monitoring 實時活動監控

Nginx R31 doc-16-logging 配置日誌

Nginx R31 doc-17-debugging 調試

Nginx R31 doc-18-High Availability Support for NGINX Plus in On-Premises Deployments

Nginx 實戰-01-nginx ubuntu 安裝筆記

Nginx 實戰-01-nginx windows 安裝筆記

Nginx 實戰-02-nginx proxy_pass 服務代理訪問 使用筆記 ubuntu nodejs

Nginx 實戰-03-nginx 負載均衡

Nginx 實戰-04-nginx 不同的地址訪問不同的服務

Nginx 實戰-05-nginx 反向代理實現功能變數名稱到指定的 ip

在運行時控制 NGINX 進程

瞭解處理流量的 NGINX 進程,並學會在運行時對它們進行控制。

主進程和工作進程

NGINX 有一個主進程和一個或多個工作進程。如果啟用了緩存,緩存載入器和緩存管理器進程也會在啟動時運行。

主進程的主要目的是讀取和評估配置文件,並維護工作進程。

工作進程執行請求的實際處理。NGINX 依賴於操作系統相關的機制來有效地將請求分配給工作進程。

工作進程的數量由 nginx.conf 配置文件中的 worker_processes 指令定義,並且可以設置為固定數量,也可以配置為根據可用的 CPU 核心數量自動調整。

控制 NGINX

要重新載入配置,可以停止或重新啟動 NGINX,或向主進程發送信號。

可以通過運行帶有 -s 參數的 nginx 命令(調用 NGINX 可執行文件)來發送信號。

使用 NGINX 控制信號

使用 nginx -s <SIGNAL> 命令,其中 <SIGNAL> 可以是以下之一:

  • quit – 優雅地關閉(SIGQUIT 信號)
  • reload – 重新載入配置文件(SIGHUP 信號)
  • reopen – 重新打開日誌文件(SIGUSR1 信號)
  • stop – 立即關閉(或快速關閉,SIGTERM 信號)

也可以使用 kill 實用程式直接向主進程發送信號。主進程的進程 ID 預設寫入到 nginx.pid 文件中,該文件位於 /usr/local/nginx/logs 或 /var/run 目錄中。

要瞭解更多關於高級信號的信息(例如執行實時二進位升級),請參閱 nginx.org 上的《控制 NGINX》。

創建 NGINX Plus 和 NGINX 配置文件

瞭解 NGINX 或 NGINX Plus 配置文件中的基本元素,包括指令和上下文。

NGINX 和 NGINX Plus 與其他服務類似,它們使用以特定格式編寫的基於文本的配置文件。

預設情況下,該文件名為 nginx.conf,對於 NGINX Plus 放置在 /etc/nginx 目錄下。

(對於 NGINX Open Source,文件位置取決於用於安裝 NGINX 的軟體包系統和操作系統。

通常位於 /usr/local/nginx/conf、/etc/nginx 或 /usr/local/etc/nginx 其中之一。)

指令

配置文件由指令及其參數組成。簡單(單行)指令以分號結尾。

其他指令充當“容器”,將相關指令分組在一起,用大括弧({})括起來;這些通常被稱為塊。以下是一些簡單指令的示例。

user             nobody;
error_log        logs/error.log notice;
worker_processes 1;

特定功能配置文件

為了更容易維護配置,我們建議將其拆分為一組特定功能的文件,存儲在 /etc/nginx/conf.d 目錄中,併在主 nginx.conf 文件中使用 include 指令來引用特定功能文件的內容。

include conf.d/http;
include conf.d/stream;
include conf.d/exchange-enhanced;

上下文

幾個頂級指令,稱為上下文,將適用於不同流量類型的指令分組在一起:

  • events – 通用連接處理
  • http – HTTP 流量
  • mail – 郵件流量
  • stream – TCP 和 UDP 流量

放置在這些上下文之外的指令被認為在主上下文中。

虛擬伺服器

在每個流量處理上下文中,您可以包含一個或多個 server 塊來定義控制請求處理的虛擬伺服器。您可以在 server 上下文中包含的指令取決於流量類型。

對於 HTTP 流量(http 上下文),每個 server 指令控制特定功能變數名稱或 IP 地址上資源的請求處理。在 server 上下文中的一個或多個 location 上下文定義瞭如何處理特定的 URI 集。

對於郵件和 TCP/UDP 流量(mail 和 stream 上下文),每個 server 指令控制到達特定 TCP 埠或 UNIX 套接字的流量的處理。

具有多個上下文的示例配置文件

以下配置說明瞭上下文的使用。

user nobody; # a directive in the 'main' context

events {
    # configuration of connection processing
}

http {
    # Configuration specific to HTTP and affecting all virtual servers

    server {
        # configuration of HTTP virtual server 1
        location /one {
            # configuration for processing URIs starting with '/one'
        }
        location /two {
            # configuration for processing URIs starting with '/two'
        }
    }

    server {
        # configuration of HTTP virtual server 2
    }
}

stream {
    # Configuration specific to TCP/UDP and affecting all virtual servers
    server {
        # configuration of TCP virtual server 1
    }
}

繼承 Inheritance

通常情況下,子上下文(包含在另一個上下文中的上下文,即其父上下文)會繼承在父級水平包含的指令的設置。一些指令可以出現在多個上下文中,在這種情況下,您可以通過在子上下文中包含該指令來覆蓋從父級繼承的設置。例如,請參閱 proxy_set_header 指令。

重新載入配置 Reloading Configuration

要使配置文件的更改生效,必須重新載入。

您可以重新啟動 nginx 進程,也可以發送重新載入信號以升級配置,而不中斷當前請求的處理。有關詳細信息,請參閱在運行時控制 NGINX 進程。

使用 NGINX Plus,您可以在不重新載入配置的情況下動態重新配置對上游組中伺服器的負載平衡。

您還可以使用 NGINX Plus API 和鍵值存儲來動態控制訪問,例如基於客戶端 IP 地址。

參考資料

https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文深入探討了Kubernetes中的Pod調度機制,包括基礎概念、高級調度技術和實際案例分析。文章詳細介紹了Pod調度策略、Taints和Tolerations、節點親和性,以及如何在高流量情況下優化Pod調度和資源管理。 關註【TechLeadCloud】,分享互聯網架構、雲服務技術的全維度知識 ...
  • PPT是傳遞信息、進行彙報和推廣產品的重要工具。然而,有時我們需要將這些精心設計的PPT演示文稿發佈到網路上,以便於更廣泛的訪問和分享。本文將介紹如何使用Python將PowerPoint文檔轉換為網頁友好的HTML格式。包含兩個簡單示例: Python 將PowerPoint文檔轉為HTML格式 ...
  • 項目基於 Spring Boot 3.2.5 Pom 需要註意的是,引用 Mybatis-Plus 依賴,無需手動引入 Mybatis <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --> <dependenc ...
  • 簡介 waynboot-mall 是一套全部開源的 H5 商城項目,包含運營後臺、H5 商城前臺和後端介面三個項目 。實現了一套完整的商城業務,有首頁展示、商品分類、商品詳情、sku 詳情、商品搜索、加入購物車、結算下單、支付寶/微信支付/易支付對接、我的訂單列表、商品評論等一系列功能 。 ...
  • 主要用於去除圖片的白邊和黑邊,比如在截圖表情包的時候,通過小米的傳送門保存圖片的時候,圖片往往會有黑邊和白邊,此時使用此腳本二次處理 import os from PIL import Image, ImageChops def trim_white_border(image): bg = Imag ...
  • novel —— 一套基於 Spring Boot3 + Vue3 開發的前後端分離學習型小說項目。由小說門戶系統、作家後臺管理系統、平臺後臺管理系統等多個子系統構成。 ...
  • 1. Spring 對於事務上的應用的詳細說明 @目錄1. Spring 對於事務上的應用的詳細說明每博一文案2. 事務概述3. 引入事務場景3.1 第一步:準備資料庫表3.2 第二步:創建包結構3.3 第三步:準備對應資料庫映射的 Bean 類3.4 第四步:編寫持久層3.5 第五步:編寫業務層3 ...
  • APCu 極簡概括: PHP 的開源記憶體緩存擴展,類比Redis,但是一般都用Redis,所以APCu用的很少。 官方文檔:https://www.php.net/manual/zh/apcu.configuration.php 解決問題:類比Redis做緩存組件,提升性能,同步數據使用。 適用場景 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...