Nginx 基礎使用(2025)

一、Nginx目錄結構

[root@localhost ~]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp                 # POST 大文件暫存目錄
├── conf                             # Nginx所有配置文件的目錄
│   ├── fastcgi.conf                 # fastcgi相關參數的配置文件
│   ├── fastcgi.conf.default         # fastcgi.conf的原始備份文件
│   ├── fastcgi_params               # fastcgi的參數文件
│   ├── fastcgi_params.default       
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types                   # 媒體類型
│   ├── mime.types.default
│   ├── nginx.conf                   #這是Nginx默認的主配置文件,日常使用和修改的文件
│   ├── nginx.conf.default
│   ├── scgi_params                  # scgi相關參數文件
│   ├── scgi_params.default  
│   ├── uwsgi_params                 # uwsgi相關參數文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                     # fastcgi臨時數據目錄
├── html                             # Nginx默認站點目錄
│   ├── 50x.html                     # 錯誤頁面優雅替代顯示文件,例如出現502錯誤時會調用此頁面
│   └── index.html                   # 默認的首頁文件
├── logs                             # Nginx日志目錄
│   ├── access.log                   # 訪問日志文件
│   ├── error.log                    # 錯誤日志文件
│   └── nginx.pid                    # pid文件,Nginx進程啟動后,會把所有進程的ID號寫到此文件
├── proxy_temp                       # 臨時目錄
├── sbin                             # Nginx 可執行文件目錄
│   └── nginx                        # Nginx 二進制可執行程序
├── scgi_temp                        # 臨時目錄
└── uwsgi_temp                       # 臨時目錄

主要的目錄包含conf,html,logs和sbin:

    ????????① conf目錄用來存放配置文件相關

    ? ? ? ? ②?html目錄用來存放靜態文件的默認目錄?,如前端包、htmlcss

    ? ? ? ? ③?logs目錄用來存放日志信息

    ? ? ? ? ④?sbin目錄用于存放可執行文件,可以用 ./nginx啟動nginx:

    二、基本運行原理

    Nginx 是一種高性能的 HTTP 和反向代理服務器,它采用了經典的「Master-Worker」模型來運行。以下是 Nginx 基本運行原理的介紹:

    1. 啟動過程

      • 當 Nginx 啟動時,首先會創建一個 Master 進程。

      • Master 進程負責讀取和驗證配置文件(如 /conf/nginx.conf),確保配置的正確性。

    2. 配置文件

      • 配置文件中定義了 Nginx 的各種設置,包括監聽的端口、處理請求的方式等。

    3. Worker 進程

      • Master 進程會根據配置文件中的設置,啟動多個 Worker 進程。

      • 這些 Worker 進程是實際處理客戶端請求的進程。

      • 每個 Worker 進程獨立運行,平等地競爭來自客戶端的請求。

    4. 請求處理

      • 客戶端通過瀏覽器或其他方式向 Nginx 發送請求(如訪問 http://192.168.44.101/index.html)。

      • 請求首先到達 Master 進程,然后由 Master 進程分發給一個 Worker 進程。

      • Worker 進程解析請求,并根據請求內容讀取相應的文件(如 /html/index.html)。

      • Worker 進程處理完請求后,將響應返回給客戶端。

    5. 進程管理

      • Master 進程負責管理 Worker 進程,包括接收外界信號、向 Worker 進程發送信號、監控 Worker 進程的運行狀態等。

      • 如果某個 Worker 進程異常退出,Master 進程會自動重新啟動一個新的 Worker 進程,以確保服務的連續性。

    6. 性能優化

      • 通常,Worker 進程的數量會設置為與機器的 CPU 核心數一致,以充分利用多核 CPU 的性能。

      • Nginx 的事件處理模型(如 epoll)使得 Worker 進程能夠高效地處理大量并發連接。

    通過這種「Master-Worker」模型,Nginx 能夠實現高性能、高并發的 Web 服務處理。

    三、Nginx配置與應用場景

    3.1 nginx.conf

    剛安裝好的nginx.conf如下:

    #user  nobody;
    worker_processes  1;#error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
    }http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}
    

    去掉注釋的簡單版如下:

    worker_processes  1; #允許進程數量,建議設置為cpu核心數或者auto自動檢測,
    #注意Windows服務器上雖然可以啟動多個processes,但是實際只會用其中一個events {#單個進程最大連接數(最大連接數=連接數*進程數)#根據硬件調整,和前面工作進程配合起來用,盡量大,但是別把cpu跑到100%就行。worker_connections  1024;
    }http {#文件擴展名與文件類型映射表(是conf目錄下的一個文件)include       mime.types;#默認文件類型,如果mime.types預先定義的類型沒匹配上,默認使用二進制流的方式傳輸default_type  application/octet-stream;#sendfile指令指定nginx是否調用sendfile 函數(zero copy 方式)來輸出文件,
    #對于普通應用,必須設為on。如果用來進行下載等應用磁盤IO重負載應用,
    #可設置為off,以平衡磁盤與網絡IO處理速度。sendfile        on;#長連接超時時間,單位是秒keepalive_timeout  65;#虛擬主機的配置server {#監聽端口listen       80;#域名,可以有多個,用空格隔開server_name  localhost;#配置根目錄以及默認頁面location / {root   html;index  index.html index.htm;}#出錯頁面配置error_page   500 502 503 504  /50x.html;#/50x.html文件所在位置location = /50x.html {root   html;}}}
    

    配置介紹:

    worker_processes
    worker_processes 1 ; 默認為 1,表示開啟一個業務進程( Worker 進程 )。
    worker_connections
    worker_connections 1024 ; 單個業務進程可接受連接數。
    include mime.types;
    include mime.types ; 引入 http mime類型,文件包含了各種文件擴展名與 MIME 類型之間的映射關系。
    default_type application/octet-stream;
    default_type application/octet - stream ; 如果 mime類型沒匹配上,默認將使用二進制流的方式傳輸文件。
    sendfile on;
    sendfile on ; 使用 linux sendfile(socket, file, len) 高效網絡傳輸,也就是數據 0 拷貝。
    • sendfile 可以實現數據的零拷貝(zero-copy),即數據直接從文件系統傳輸到網絡緩沖區,而不需要經過用戶空間的拷貝,從而提高傳輸效率。

    未開啟sendfile:

    開啟sendfile:

    keepalive_timeout 65;

    keepalive_timeout 是 Nginx 配置中的一個指令,它用于設置保持連接打開狀態的時間,也就是長連接的超時時間。

    • time:可以是指定的秒數,也可以是小數點表示的秒數(例如,65、65.5)。

    3.2?server_name匹配規則

    我們需要注意的是 servername 匹配分先后順序,寫在前面的匹配上就不會繼續往下匹配了。

    3.2.1完整匹配

    可以配置多個域名,例如:

    server_name  test81.xzj520520.cn  test82.xzj520520.cn;
    

    3.2.2通配符匹配

    使用通配符的方式如下

    ①通配符開始匹配:
    server_name  *.xzj520520.cn;
    
    ②通配符結束匹配:
    server_name  www.xzj520520.*;
    

    需要注意的是精確匹配的優先級大于通配符匹配和正則匹配。

    3.2.3正則匹配

    采用正則的匹配方式如下:

    server_name ~^[0-9]+\.mmban\.com$;

    正則匹配格式,必須以~開頭,比如:server_name ~^www\d+\.example\.net$;。如果開頭沒有~,則nginx認為是精確匹配。在邏輯上,需要添加^$錨定符號。注意,正則匹配格式中.為正則元字符,如果需要匹配.,則需要反斜線轉義。如果正則匹配中含有{}則需要雙引號引用起來,避免nginx報錯,如果沒有加雙引號,則nginx會報如下錯誤:directive "server_name" is not terminated by ";" in ...

    3.2.4 匹配順序

    1. 精確匹配

      ? ?Nginx 首先查找是否有完全匹配的域名。例如,如果配置了 server_name example.com;,則該服務器塊會匹配直接請求 example.com 的請求。
    2. 最長通配符匹配(以 * 開頭)

      ? ?如果沒有精確匹配,Nginx 會查找以星號(*)開頭的最長通配符匹配。例如,server_name *.example.com; 會匹配任何以 .example.com 結尾的域名,如 sub.example.com
    3. 最長通配符匹配(以 * 結尾)

      ? ?如果沒有找到以 * 開頭的通配符匹配,Nginx 會查找以星號(*)結尾的最長通配符匹配。例如,server_name example.*; 會匹配任何以 example. 開頭的域名,如 example.sub
    4. 正則表達式匹配

      ? ?如果上述匹配都未找到,Nginx 會查找正則表達式匹配。正則表達式必須以 ~ 開頭(區分大小寫)或 ~* 開頭(不區分大小寫)。例如,server_name ~^www\.example\.com$; 會匹配 www.example.com
    5. 特殊匹配

      ?server_name ""; 用于匹配 Host 請求頭不存在的情況。
    6. 默認服務器塊

      ? ? 如果以上所有匹配都未找到,Nginx 會使用沒有 server_name 指令的服務器塊(如果有的話)作為默認服務器塊來處理請求。

    3.3反向代理

    在 Nginx 中配置反向代理時,proxy_pass 指令用于指定客戶端請求將被轉發到的目標服務器地址。

    • 假設我們要將域名example.com的請求代理到后端服務器192.168.1.1008080端口。

    server {listen 80; // 監聽 80 端口server_name example.com; // 指定域名location / {proxy_pass http://192.168.1.100:8080; // 將請求轉發到后端服務器proxy_set_header Host $host; // 傳遞原始請求的 Host 頭部proxy_set_header X-Real-IP $remote_addr; // 傳遞客戶端的真實 IP 地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; // 添加 X - Forwarded - For 頭部,用于記錄請求經過的代理服務器proxy_set_header X-Forwarded-Proto $scheme; // 傳遞原始請求的協議(如 HTTP 或 HTTPS)}
    }
    • 在這個配置中,proxy_pass指令是核心,它指定了后端服務器的地址和端口。proxy_set_header指令用于設置轉發請求時添加的頭部信息,這對于后端服務器正確處理請求很重要。例如,X - Real - IP頭部可以讓后端服務器知道客戶端的真實 IP 地址,而不是 Nginx 服務器的 IP 地址。

    3.4負載均衡

    3.4.1 如何配置負載均衡

    可以通過upstream模塊定義一組后端服務器,然后在proxy_pass中引用這個upstream來實現負載均衡。

    upstream backend {server 192.168.1.100:8080;server 192.168.1.101:8080;server 192.168.1.102:8080;
    }server {listen 80;server_name example.com;location / {proxy_pass http://backend; // 引用 upstream 中定義的服務器組proxy_set_header Host $host;proxy_set_header X - Real - IP $remote_addr;proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;proxy_set_header X - Forwarded - Proto $scheme;}
    }

    默認情況下,Nginx 使用輪詢的方式將請求分發到upstream中的服務器。也可以通過least_conn(最少連接)或ip_hash(基于 IP 哈希)等指令來指定其他負載均衡策略

    3.4.2?負載均衡策略

    1. 輪詢(默認策略)
    • 工作原理:默認情況下,Nginx 使用輪詢策略,按照順序依次將請求分配給后端服務器。

    • 適用場景:適用于后端服務器性能相近且請求量相對均勻的場景。

    • 配置示例

      upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060;server 127.0.0.1:8070;
      }

    2. 權重(Weight)
    • 工作原理:通過weight指令為每臺服務器分配權重。權重越高,分配到的請求越多。權重默認為1。

    • 適用場景:適用于后端服務器性能不均的情況,高性能服務器可以分配更高的權重。

    • 配置示例

    upstream backend {server 127.0.0.1:8050 weight=10;  # 高性能服務器server 127.0.0.1:8060 weight=1;   # 低性能服務器server 127.0.0.1:8070 weight=5;   # 中等性能服務器
    }

    3. 禁用服務器(Down)
    • 工作原理:使用down指令可以將某臺服務器標記為暫時不參與負載均衡。

    • 適用場景:當某臺服務器需要維護或出現故障時,可以將其標記為down

    • 配置示例

      upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060 down;  # 暫時禁用這臺服務器server 127.0.0.1:8070;
      }

    4. 備用服務器(Backup)
    • 工作原理:使用backup指令可以將某臺服務器標記為備用服務器。只有當其他所有非備用服務器都不可用(如宕機或繁忙)時,才會將請求轉發到備用服務器。

    • 適用場景:用于提高系統的可用性,確保在部分服務器故障時仍然可以提供服務。

    • 配置示例

    upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060;server 127.0.0.1:8070 backup;  # 備用服務器
    }

    5. IP 哈希(IP Hash)
    • 工作原理:根據客戶端的IP地址進行哈希計算,將請求分配到特定的服務器。同一個客戶端的請求總是被分配到同一臺服務器。

    • 適用場景:適用于需要會話保持的應用場景,例如在線購物車系統。

    • 配置示例

    upstream backend {ip_hash;server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    6. 最少連接(Least Conn)
    • 工作原理:將新的請求分配給當前連接數最少的服務器。

    • 適用場景:適用于請求量波動較大且服務器性能相近的場景。

    • 配置示例

    upstream backend {least_conn;server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    7. URL 哈希(URL Hash)
    • 工作原理:根據請求的URL進行哈希計算,將請求分配到特定的服務器。適用于靜態資源的負載均衡。

    • 適用場景:適用于靜態資源的分配,例如圖片、CSS 文件等。

    • 配置示例

    upstream backend {hash $request_uri consistent;  # 使用請求的 URI 進行哈希server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    8. 響應時間(Fair)
    • 工作原理:根據后端服務器的響應時間來分配請求。響應時間越短的服務器,分配到的請求越多。

    • 適用場景:適用于對響應時間敏感的應用場景。

    • 配置示例

    upstream backend {fair;server 127.0.0.1:8050;server 127.0.0.1:8060;
    }

    3.4.3 綜合配置示例

    以下是一個綜合了多種策略的配置示例:

    upstream backend {ip_hash;  # 保持會話least_conn;  # 最少連接server 127.0.0.1:8050 weight=10;server 127.0.0.1:8060 weight=5;server 127.0.0.1:8070 weight=1 backup;  # 備用服務器server 127.0.0.1:8080 down;  # 禁用服務器
    }server {listen 80;server_name example.com;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
    }

    3.4.3 總結

    • 輪詢:適用于服務器性能相近的場景。

    • 權重:適用于服務器性能不均的場景。

    • 最少連接:適用于請求量波動較大的場景。

    • IP 哈希:適用于需要會話保持的場景。

    • URL 哈希:適用于靜態資源的負載均衡。

    • 響應時間:適用于對響應時間敏感的場景。

    • 備用服務器:用于提高系統的可用性。

    • 禁用服務器:用于維護或故障處理。

    根據實際需求選擇合適的策略和配置,可以有效提升系統的性能和可用性。

    ?

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

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

    相關文章

    用spring-webmvc包實現AI(Deepseek)事件流(SSE)推送

    前后端: Spring Boot Angular spring-webmvc-5.2.2包 代碼片段如下: 控制層: GetMapping(value "/realtime/page/ai/sse", produces MediaType.TEXT_EVENT_STREAM_VALUE)ApiOperation(value "獲取告警記錄進行AI分析…

    基于Python的招聘推薦數據可視化分析系統

    【Python】基于Python的招聘推薦數據可視化分析系統(完整系統源碼開發筆記詳細部署教程)? 目錄 一、項目簡介二、項目界面展示三、項目視頻展示 一、項目簡介 🚀🌟 基于Python的招聘推薦數據可視化分析系統!&#x1…

    使用注解開發springMVC

    引言 在學習過第一個springMVC項目建造過后&#xff0c;讓我們直接進入真實開發中所必需的注解開發&#xff0c; 是何等的簡潔高效&#xff01;&#xff01; 注&#xff1a;由于Maven可能存在資源過濾的問題&#xff0c;在maven依賴中加入 <build><resources>&l…

    linux專題3-----禁止SSH的密碼登錄

    要在linux系統中禁止密碼登錄&#xff0c;您可以通過修改 SSH 配置來實現。請按照以下步驟操作(此處以 Ubuntu為例)&#xff1a; 1、SSH 登錄到您的服務器&#xff08;或直接在命令行模式下&#xff09;。 2、備份 SSH 配置文件&#xff1a; 在終端中運行以下命令以備份現有的…

    基于LangChain和通義(Tongyi)實現NL2SQL的智能檢索(無需訓練)

    在數據驅動的時代,如何高效地從數據庫中獲取信息成為了一個重要的挑戰。自然語言到SQL(NL2SQL)技術提供了一種便捷的解決方案,使用戶能夠用自然語言查詢數據庫,而無需深入了解SQL語法。本文將探討如何利用LangChain和通義(Tongyi)實現NL2SQL的智能檢索,具體步驟如下: …

    深度學習處理文本(10)

    保存自定義層 在編寫自定義層時&#xff0c;一定要實現get_config()方法&#xff1a;這樣我們可以利用config字典將該層重新實例化&#xff0c;這對保存和加載模型很有用。該方法返回一個Python字典&#xff0c;其中包含用于創建該層的構造函數的參數值。所有Keras層都可以被序…

    機器視覺3D中激光偏鏡的優點

    機器視覺的3D應用中,激光偏鏡(如偏振片、波片、偏振分束器等)通過其獨特的偏振控制能力,顯著提升了系統的測量精度、抗干擾能力和適應性。以下是其核心優點: 1. 提升3D成像精度 抑制環境光干擾:偏振片可濾除非偏振的環境雜光(如日光、室內照明),僅保留激光偏振信號,大…

    線程同步的學習與應用

    1.多線程并發 1).多線程并發引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } i…

    寫.NET可以指定運行SUB MAIN嗎?調用任意一個里面的類時,如何先執行某段初始化代碼?

    VB.NET 寫.NET可以指定運行SUB MAIN嗎?調用任意一個里面的類時,如何先執行某段初始化代碼? 分享 1. 在 VB.NET 中指定運行 Sub Main 在 VB.NET 里&#xff0c;你能夠指定 Sub Main 作為程序的入口點。下面為你介紹兩種實現方式&#xff1a; 方式一&#xff1a;在項目屬性…

    【AI插件開發】Notepad++ AI插件開發實踐(代碼篇):從Dock窗口集成到功能菜單實現

    一、引言 上篇文章已經在Notepad的插件開發中集成了選中即問AI的功能&#xff0c;這一篇文章將在此基礎上進一步集成&#xff0c;支持AI對話窗口以及常見的代碼功能菜單&#xff1a; 顯示AI的Dock窗口&#xff0c;可以用自然語言向 AI 提問或要求執行任務選中代碼后使用&…

    關聯容器-模板類pair數對

    關聯容器 關聯容器和順序容器有著根本的不同:關聯容器中的元素是按關鍵字來保存和訪問的,而順序容器中的元素是按它們在容器中的位置來順序保存和訪問的。 關聯容器支持高效的關鍵字查找和訪問。 兩個主要的關聯容器(associative-container),set和map。 set 中每個元素只包…

    京東運維面試題及參考答案

    目錄 OSPF 實現原理是什么? 請描述 TCP 三次握手的過程。 LVS 的原理是什么? 闡述 Nginx 七層負載均衡的原理。 Nginx 與 Apache 有什么區別? 如何查看監聽在 8080 端口的是哪個進程(可舉例:netstat -tnlp | grep 8080)? OSI 七層模型是什么,請寫出各層的協議。 …

    輸入框輸入數字且保持精度

    在項目中如果涉及到金額等需要數字輸入且保持精度的情況下&#xff0c;由于輸入框是可以隨意輸入文本的&#xff0c;所以一般情況下可能需要監聽輸入框的change事件&#xff0c;然后通過正則表達式去替換掉不匹配的文本部分。 由于每次文本改變都會被監聽&#xff0c;包括替換…

    使用 requests 和 BeautifulSoup 解析淘寶商品

    以下將詳細解釋如何通過這兩個庫來實現按關鍵字搜索并解析淘寶商品信息。 一、準備工作 1. 安裝必要的庫 在開始之前&#xff0c;確保已經安裝了 requests 和 BeautifulSoup 庫。如果尚未安裝&#xff0c;可以通過以下命令進行安裝&#xff1a; bash pip install requests…

    C#調用ACCESS數據庫,解決“Microsoft.ACE.OLEDB.12.0”未注冊問題

    C#調用ACCESS數據庫&#xff0c;解決“Microsoft.ACE.OLEDB.12.0”未注冊問題 解決方法&#xff1a; 1.將C#采用的平臺從AnyCpu改成X64 2.將官網下載的“Microsoft Access 2010 數據庫引擎可再發行程序包AccessDatabaseEngine_X64”文件解壓 3.安裝解壓后的文件 點擊下載安…

    【文獻閱讀】Vision-Language Models for Vision Tasks: A Survey

    發表于2024年2月 TPAMI 摘要 大多數視覺識別研究在深度神經網絡&#xff08;DNN&#xff09;訓練中嚴重依賴標注數據&#xff0c;并且通常為每個單一視覺識別任務訓練一個DNN&#xff0c;這導致了一種費力且耗時的視覺識別范式。為應對這兩個挑戰&#xff0c;視覺語言模型&am…

    【Kubernetes】StorageClass 的作用是什么?如何實現動態存儲供應?

    StorageClass 使得用戶能夠根據不同的存儲需求動態地申請和管理存儲資源。 StorageClass 定義了如何創建存儲資源&#xff0c;并指定了存儲供應的配置&#xff0c;例如存儲類型、質量、訪問模式等。為動態存儲供應提供了基礎&#xff0c;使得 Kubernetes 可以在用戶創建 PVC 時…

    Muduo網絡庫介紹

    1.Reactor介紹 1.回調函數 **回調&#xff08;Callback&#xff09;**是一種編程技術&#xff0c;允許將一個函數作為參數傳遞給另一個函數&#xff0c;并在適當的時候調用該函數 1.工作原理 定義回調函數 注冊回調函數 觸發回調 2.優點 異步編程 回調函數允許在事件發生時…

    Debian編譯安裝mysql8.0.41源碼包 筆記250401

    Debian編譯安裝mysql8.0.41源碼包 以下是在Debian系統上通過編譯源碼安裝MySQL 8.0.41的完整步驟&#xff0c;包含依賴管理、編譯參數優化和常見問題處理&#xff1a; 準備工作 1. 安裝編譯依賴 sudo apt update sudo apt install -y \cmake gcc g make libssl-dev …

    Git常用問題收集

    gitignore 忽略文件夾 不生效 有時候我們接手別人的項目時&#xff0c;發現有的忽略不對想要修改&#xff0c;但發現修改忽略.gitignore后無效。原因是如果某些文件已經被納入版本管理在.gitignore中忽略路徑是不起作用的&#xff0c;這時候需要先清除本地緩存&#xff0c;然后…