Web服務與Nginx詳解

文章目錄

  • 前言
  • 一、Web 概念
    • 1.1 Web 的基本概念
      • 1.1.1 特點
    • 1.2 B/S 架構模型
    • 1.3 Web 請求與響應過程
    • 1.4 靜態資源與動態資源
    • 1.5 Web 的發展階段
    • 1.6 實驗:搭建最小 Web 服務
      • 1.6.1 實驗目標
      • 1.6.2 實驗步驟
    • 1.7 小結
  • 二、HTTP 與 HTTPS 協議
    • 2.1 HTTP 與 HTTPS 的區別
    • 2.2 HTTPS 握手流程
    • 2.3 HTTP 狀態碼
      • 2.3.1 HTTP 狀態碼概覽
      • 2.3.2 常用狀態碼詳解
  • 三、Nginx 概念
    • 3.1 Nginx 介紹
      • 3.1.1 主要功能
      • 3.1.2 優勢
      • 3.1.3 官網與版本
    • 3.2 Nginx 與 Apache 的差異
    • 3.3 Nginx 進程結構
  • 四、Nginx 安裝
  • 五、Nginx 配置
    • 5.1 全局配置
    • 5.2 I/O 事件配置
    • 5.3 HTTP 配置
    • 5.4 Web 服務監聽配置
    • 5.5 其他配置
      • 5.5.1 日志格式
      • 5.5.2 別名配置
  • 六、Nginx 虛擬主機
    • 6.1 訪問狀態統計配置
      • 6.1.1 查看已安裝模塊
      • 6.1.2 修改 nginx.conf 配置文件
      • 6.1.3 重載服務并測試
    • 6.2 基于授權的訪問控制
      • 6.2.1 生成密碼文件
      • 6.2.2 配置認證
      • 6.2.3 重載服務并測試
    • 6.3 基于客戶端的訪問控制
    • 6.4 基于域名的虛擬主機
      • 6.4.1 域名解析
      • 6.4.2 準備網頁文檔
      • 6.4.3 配置 Nginx
    • 6.5 基于 IP 的虛擬主機
      • 6.5.1 配置多 IP
      • 6.5.2 配置 Nginx
    • 6.6 基于端口的虛擬主機
      • 6.6.1 配置不同端口
  • 總結


前言

在當今互聯網時代,Web 服務已成為信息傳遞與交互的重要載體。無論是靜態網頁還是動態應用,背后都離不開穩定、高效的服務器支持。Nginx 作為一款高性能的 Web 服務器和反向代理工具,因其出色的并發處理能力和靈活的配置方式,被廣泛應用于各類網站架構中。本文將從 Web 的基本概念出發,逐步介紹 HTTP/HTTPS 協議、Nginx 的核心特性及其安裝與配置方法,幫助讀者系統理解 Web 服務的工作原理與 Nginx 的實際應用。


一、Web 概念

1.1 Web 的基本概念

Web(World Wide Web,萬維網)是運行在互聯網之上的一個超文本信息系統,它依賴于 HTTP/HTTPS 協議 實現瀏覽器與服務器之間的交互。

1.1.1 特點

  • 分布式:資源分布在世界各地的服務器上。
  • 跨平臺:只要有瀏覽器,就能訪問資源。
  • 無狀態:每次 HTTP 請求都是獨立的,服務器不會記住客戶端狀態(除非使用 Cookie/Session)。

Cookie/Session可以緩解服務器壓力、加速二次訪問網頁的速度

在這里插入圖片描述

1.2 B/S 架構模型

Web 采用 B/S 架構(Browser/Server)

  • Browser(瀏覽器):用戶的入口,發送請求、渲染頁面。
  • Server(服務器):接收請求,返回所需資源或動態內容。

圖 1-1:B/S 架構示意圖

用戶瀏覽器 ──> Web服務器(Nginx/Apache)   靜態 就會立馬訪問給客戶端│└─> 應用服務器(PHP/Python/Java)│└─> 數據庫(MySQL/Redis)

1.3 Web 請求與響應過程

一次完整的 Web 訪問過程包括以下步驟:

  1. 輸入 URL:用戶在瀏覽器輸入 http://www.example.com。瀏覽器會判斷輸入的內容是否符合超文本連接協議,判斷是否要進行下一步。
    會將輸入的URL解析為四部分
  • 協議:http://
  • 域名:www.example.com
  • 端口::80
  • 路徑:/index
  1. DNS 解析:瀏覽器將域名解析為 IP 地址。
    DNS解析會逐層解析:
  • 先解析主機(檢查host文件)
  • 然后解析網卡配置
  • 再解析/etc/resolv.conf
  1. 建立連接:瀏覽器與 Web 服務器建立 TCP 連接(3 次握手)。
  2. 發送請求:瀏覽器發起 HTTP 請求(GET/POST)。
    請求報文內包含:請求行、請求頭、請求體
  3. 服務器處理
    • 解析請求報文
    • Web 服務器處理靜態資源請求
    • 路由處理,動態請求轉發到應用服務器(如 Tomcat、Django)
    • 業務處理,應用服務器可能再查詢數據庫
  4. 返回響應:Web 服務器將結果打包成 HTTP 響應報文返回瀏覽器。
    響應報文內包含、狀態行、響應頭、響應體
  5. 渲染頁面:瀏覽器解析 HTML、加載 CSS/JS、渲染最終頁面。

1.4 靜態資源與動態資源

  • 靜態資源:不需要服務器額外處理,直接返回即可。
    • HTML、CSS、圖片、視頻、JS 文件
    • 優點:速度快,壓力小
  • 動態資源:需要服務器端代碼計算生成,再返回客戶端。
    • PHP 腳本、Python Flask/Django、Java Servlet、Ruby
    • 優點:個性化內容,支持交互

圖 1-3 靜態與動態資源對比圖

靜態資源:用戶請求 → Web服務器直接返回
動態資源:用戶請求 → Web服務器 → 應用服務器運行代碼 → 返回結果

1.5 Web 的發展階段

  • Web 1.0(只讀):靜態頁面為主,用戶只能瀏覽。
  • Web 2.0(交互式):用戶可生成內容,AJAX(前端) 技術普及。
  • Web 3.0(智能化):語義網、區塊鏈、去中心化概念興起。

1.6 實驗:搭建最小 Web 服務

1.6.1 實驗目標

體驗一次最簡單的 Web 請求與響應過程,并使用 Wireshark 抓包分析。

1.6.2 實驗步驟

創建一個靜態頁面:

<!-- index.html -->
<html>
<head><title>My First Web</title></head>
<body>
<h1>Hello Web!</h1>
<p>This is my first web page.</p>
</body>
</html>

在訪問網頁的同時開啟Wireshark 進行抓包:
在這里插入圖片描述

1.7 小結

  • Web 是基于 B/S 架構 的信息交互方式。網頁端與服務端。
  • 核心是 請求-響應模型,通過 HTTP/HTTPS 協議傳輸數據。
  • Web 可提供 靜態資源動態資源

二、HTTP 與 HTTPS 協議

2.1 HTTP 與 HTTPS 的區別

  • HTTP:明文傳輸,不安全。
  • HTTPS:在 HTTP 上加入 SSL/TLS 加密,防止中間人攻擊。

2.2 HTTPS 握手流程

TLS 握手過程:客戶端發起請求 → 服務端返回證書 → 雙方協商加密算法 → 建立安全通道。
客戶端 Hello → 服務端 Hello + 證書 → 客戶端驗證 → 加密通信
TLS 握手過程

  1. 客戶端 Hello:瀏覽器發起請求,告訴服務器自己支持哪些加密算法。
  2. 服務端 Hello + 證書:網站返回 SSL 證書(證明身份),選擇一種加密算法。
  3. 客戶端驗證證書:瀏覽器檢查證書是否可信(CA 頒發、沒過期、域名匹配)。
  4. 協商密鑰:雙方生成一個臨時密鑰,用于對稱加密后續通信。
  5. 加密通信開始:后續 HTTP 數據都通過加密通道傳輸。

2.3 HTTP 狀態碼

2.3.1 HTTP 狀態碼概覽

類型范圍含義大白話理解
1xx100–199信息性狀態碼“我收到了請求,還在處理中”
2xx200–299成功“請求成功,服務器給你東西了”
3xx300–399重定向“你要的東西搬家了,去新地址找”
4xx400–499客戶端錯誤“你請求有問題(URL錯、權限不夠)”
5xx500–599服務器錯誤“服務器出問題,暫時拿不到東西”

2.3.2 常用狀態碼詳解

  • 2xx 成功

    • 200 OK:請求成功
    • 201 Created:創建成功
    • 204 No Content:成功,但沒有內容
  • 3xx 重定向

    • 301 Moved Permanently:永久搬家
    • 302 Found:臨時搬家
    • 304 Not Modified:內容未改
  • 4xx 客戶端錯誤

    • 400 Bad Request:請求格式錯
    • 401 Unauthorized:未認證
    • 403 Forbidden:禁止訪問
    • 404 Not Found:找不到頁面
  • 5xx 服務器錯誤

    • 500 Internal Server Error:服務器內部出錯
    • 502 Bad Gateway:網關錯誤
    • 503 Service Unavailable:服務不可用
    • 504 Gateway Timeout:網關超時

三、Nginx 概念

3.1 Nginx 介紹

  • Nginx 簡介

Nginx(“engine x”)是一款高性能的 HTTP 服務器和反向代理服務器,同時支持 IMAP/POP3 電子郵件代理功能。由俄羅斯程序員 Igor Sysoev 開發,最初用于服務俄羅斯第二大訪問量的網站 Rambler.ru。

  • 發展歷程

Nginx 的首個公開版本 0.1.0 發布于 2004 年 10 月 4 日。2011 年 6 月 1 日發布了穩定版本 1.0.4。目前企業環境中多采用 1.20 版本。

  • 技術特性
    采用類 BSD 許可證開源發布,具有以下顯著優勢:
    • 出色的穩定性
    • 豐富的功能集
    • 詳實的示例配置文件
    • 極低的系統資源消耗

作為輕量級服務器解決方案,單臺物理服務器可處理 30,000~50,000 個并發請求,在同類型產品中展現出卓越的并發處理能力。

  • 應用場景
    廣泛應用于全球各大網站,中國大陸采用 Nginx 的知名企業包括:

    • 百度 BWS
    • 新浪
    • 網易
    • 騰訊
  • 架構優勢
    其內存占用少、并發能力強的特點使其成為高流量網站的首選解決方案,在同類網頁服務器中表現尤為突出。

3.1.1 主要功能

  • 靜態資源服務:可以直接把網頁、圖片、視頻這些文件發給用戶。
  • 反向代理:用戶訪問你的服務器,Nginx 可以幫你把請求轉發到后端真正處理請求的服務器。
  • 負載均衡:當有很多后端服務器時,Nginx 可以智能分配流量,讓每臺服務器都不忙不過來。
  • 高并發處理:用事件驅動的方式處理請求,能同時處理成千上萬的用戶請求,而不會占用太多資源。

3.1.2 優勢

  • 輕量級,占用內存小
  • 支持百萬級并發訪問
  • 穩定可靠,開源且社區活躍

3.1.3 官網與版本

  • 官網:http://nginx.org/
  • 版本類型:Mainline(主線)、Stable(穩定)、Legacy(舊版)

3.2 Nginx 與 Apache 的差異

  • Nginx 基于事件驅動,Apache 基于進程
  • Nginx 更節省內存,支持更高并發
  • Nginx 支持熱部署,Apache 不支持
  • Nginx 在靜態文件和反向代理場景下更具優勢

3.3 Nginx 進程結構

Nginx 采用多進程模型:

  • 主進程:管理 worker 進程
  • Worker 進程:實際處理請求,數量通常與 CPU 核心數相同

Worker 進程功能

  • 接受并處理客戶請求
  • I/O 調用,獲取響應數據
  • 與后端服務器通信
  • 緩存數據
  • 響應客戶請求

四、Nginx 安裝

可使用腳本快速安裝 Nginx,方便復制粘貼執行。詳情看另一篇博客😉😉😉


五、Nginx 配置

vim /usr/local/nginx/conf/nginx.conf 
#修改前一定要進行備份
  • Nginx配置文件大致構造圖
    在這里插入圖片描述

5.1 全局配置

user nobody;  #運行用戶,若編譯時未指定則默認為 nobody
worker_processes 4; #工作進程數量,可配置成服務器內核數 * 2,如果網站訪問量不大,一般設為1就夠用了
error_log logs/error.log; #錯誤日志文件的位置
pid logs/nginx.pid; #PID 文件的位置

5.2 I/O 事件配置

events {use epoll; # 使用 epoll 模型,2.6及以上版本的系統內核,建議使用epoll模型以提高性能worker_connections 4096;  # 每個進程處理 4096 個連接
}

如提高每個進程的連接數還需執行ulimit -n 65535命令臨時修改本地每個進程可以同時打開的最大文件數。

在Linux平臺上,在進行高并發TCP連接處理時,最高的并發數量都要受到系統對用戶單一進程同時可打開文件數量的限制(這是因為系統為每個TCP連接都要創建一個socket句柄,每個socket句柄同時也是一個文件句柄)。

可使用ulimit -a命令查看系統允許當前用戶進程打開的文件數限制。修改/etc/security/limits.conf可永久修改限制。

epoll是Linux內核為處理大批句柄而作改進的poll,是Linux下多路復用IO接口select/poll的增強版本,它能顯著的減少程序在大量并發連接中只有少量活躍的情況下的系統CPU利用率。

若工作進程數為 8,每個進程處理 4096 個連接,則允許 Nginx 正常提供服務的連接數已超過 3 萬個(4096×8=32768),當然具體還要看服務器硬件、網絡帶寬等物理條件的性能表現。

在配置工作進程數和工作進程處理數量時需要保證如下條件:
工作進程數(worker_processes) * 工作進程處理數量(worker_processes)> 系統內設置的每個進程允許同時打開的最大文件數(ulimit -n)
當僅改變了工作進程數、工作進程處理數量而未改變系統內設置的每個進程允許同時打開的最大文件數時,會導致設置不起作用。

5.3 HTTP 配置

http {#引入文件擴展名和文件映射表include       mime.types;#為無法通過 MIME 類型映射識別的文件設置默認類型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; ##此選項允許或禁止使用socket的TCP_CORK的選項(發送數據包前先緩存數據),此選項僅在使用sendfile的時候使用#tcp_nopush     on;#設置連接保持時間,單位秒#keepalive_timeout  0;keepalive_timeout  65;#支持gzip壓縮#gzip  on;...

在這里插入圖片描述

5.4 Web 服務監聽配置

server {#設置監聽端口listen       80;#設置匹配域名,可以有多個,空格隔開server_name  localhost;#設置網頁的默認字符集charset utf-8;#根目錄配置location / {# root配置網站根目錄位置#root目錄在/usr/local/nginx/html下root   html;#index指定默認首頁名index  index.html index.htm;}#內部錯誤反饋頁面error_page   500 502 503 504  /50x.html;#錯誤頁面配置location = /50x.html {root   html;}}

5.5 其他配置

5.5.1 日志格式

  • $remote_addr與$http_x_forwarded_for用以記錄客戶端的ip地址;
  • $remote_user:用來記錄客戶端用戶名稱;
  • $time_local: 用來記錄訪問時間與時區;
  • $request: 用來記錄請求的url與http協議;
  • $status: 用來記錄請求狀態;成功是200,
  • $body_bytes_sent :記錄發送給客戶端文件主體內容大小;
  • $http_referer:用來記錄從哪個頁面鏈接訪問過來的;
  • $http_user_agent:記錄客戶瀏覽器的相關信息;

通常web服務器放在反向代理的后面,這樣就不能獲取到客戶的IP地址了,通過$remote_addr拿到的IP地址是反向代理服務器的iP地址。反向代理服務器在轉發請求的http頭信息中,可以增加x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來客戶端的請求的服務器地址。

5.5.2 別名配置

可以在配置文件中進行別名設置,不同于root會在設置的路徑后追加查詢的路徑,alias會直接替換匹配到的內容,達成路徑替換,并且alias可以訪問到不在nginxroot路徑下的文件夾

特性aliasroot
功能路徑替換路徑追加
語法alias /path/to/dir/;root /path/to/dir/;
結尾斜線強烈建議匹配和別名路徑都加 /建議加 /
正則匹配必須使用捕獲組(如 $1不需要
適用場景將請求映射到與 root 無關的完全不同的目錄請求路徑與文件系統路徑結構基本一致時

六、Nginx 虛擬主機

6.1 訪問狀態統計配置

6.1.1 查看已安裝模塊

當設置了軟鏈接將nginx引入了$PATH中的路徑時,可以直接使用nginx命令。nginx -v用來確認--with-http_stub_status_module模塊已安裝

也可以使用cat /opt/nginx-1.20.2/auto/options | grep YES 查看 nginx 已安裝的所有模塊

/usr/local/nginx/sbin/nginx -V

在這里插入圖片描述

6.1.2 修改 nginx.conf 配置文件

修改 nginx.conf 配置文件,指定訪問位置并添加 stub_status 配置。

location /status {stub_status on;access_log off;
}

6.1.3 重載服務并測試

可以 curl -s http://192.168.10.21/status 結合 awk與if 語句進行性能監控。

systemctl reload nginx
curl http://192.168.10.123/status 
#或瀏覽器訪問 http://192.168.10.21/status

在這里插入圖片描述

  • Active connections :表示當前的活動連接數

  • Accepts(接受連接數)

    • 含義: 自Nginx啟動以來,已經接受的客戶端連接總數。
    • 詳細解釋: 這個數字表示客戶端與Nginx服務器成功建立 TCP 連接 的次數。每當一個客戶端(如瀏覽器、移動應用等)嘗試連接到Nginx服務器并且TCP握手成功,這個計數器就會增加1。
    • 注意: 它只計算連接的數量,而不是請求的數量。一個連接上可以通過HTTP Keep-Alive特性發送多個請求。
  • Handled(處理連接數)

    • 含義: 自Nginx啟動以來,已經成功處理的操作連接總數。
    • 詳細解釋: 這是最關鍵的指標。一個連接被“Accept”后,Nginx會繼續處理它。絕大多數情況下,連接都會被成功處理。但如果Nginx在accept之后遇到錯誤(例如,客戶端在發送任何請求之前就斷開了連接,或者分配工作進程時出現問題),就可能出現 Accepts > Handled 的情況。
    • 正常情況下: Accepts 和 Handled 的值應該是非常接近的。如果兩者差距很大,通常表明網絡不穩定或客戶端行為異常(大量瞬間斷開)。
  • Requests(請求數)

    • 含義: 自Nginx啟動以來,已經處理的客戶端請求總數。
      詳細解釋: 這是三個指標中最大的數字。它計算的是在所有這些已建立的連接(Handled)上,Nginx總共處理了多少個 HTTP 請求。
    • 關鍵區別:
      • Accepts 和 Handled 統計的是 連接(Connections)。
      • Requests 統計的是 請求(Requests)。

由于HTTP Keep-Alive的作用,一個TCP連接可以發送多個HTTP請求。因此,Requests 的數量總是會遠大于 Handled 的數量。例如,一個瀏覽器打開一個網頁,它與服務器建立1個TCP連接(Accepts+1, Handled+1),然后通過這個連接請求了HTML、CSS、JS、圖片等共20個資源(Requests+20)。

stub_status這個配置曾常被用于統計網頁訪問數,現在版本的nginx中可以使用更詳細、更直觀的VST進行訪問次數的查詢。

6.2 基于授權的訪問控制

6.2.1 生成密碼文件

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db lisi
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

6.2.2 配置認證

vim /usr/local/nginx/conf/nginx.conf
......server {location / {...auth_basic "plase inser sercet";auth_basic_user_file /usr/local/nginx/passwd.db;}

6.2.3 重載服務并測試

nginx -t
systemctl reload nginx瀏覽器訪問 http://192.168.10.123

輸入網址后提示登錄,輸入剛剛配置的lisi用戶名及密碼后正常登錄。
在這里插入圖片描述

6.3 基于客戶端的訪問控制

訪問控制規則如下:

  • deny IP/IP 段:拒絕某個 IP 或 IP 段的客戶端訪問。
  • allow IP/IP 段:允許某個 IP 或 IP 段的客戶端訪問。
  • 規則從上往下執行,如匹配則停止,不再往下匹配。
vim /usr/local/nginx/conf/nginx.conf
......server {location / {...#添加控制規則allow 192.168.10.120; 					#允許訪問的客戶端 IPdeny all;								#拒絕其它IP客戶端訪問}}

在這里插入圖片描述
在這里插入圖片描述

6.4 基于域名的虛擬主機

6.4.1 域名解析

echo "192.168.10.21 www.acb.com www.look.com" >> /etc/hosts

6.4.2 準備網頁文檔

mkdir -p /usr/local/nginx/html/{abc,look}
echo "<h1>www.abc.com</h1>" > /usr/local/nginx/html/abc/index.html
echo "<h1>www.look.com</h1>" > /usr/local/nginx/html/look/index.html

6.4.3 配置 Nginx

server {listen 80;server_name www.look.com;charset utf-8;access_log logs/www.look.access.log;location / {root /usr/local/nginx/html/look;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 80;server_name www.abc.com;charset utf-8;access_log logs/www.abc.access.log;location / {root /usr/local/nginx/html/abc;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}

在這里插入圖片描述
在這里插入圖片描述

6.5 基于 IP 的虛擬主機

6.5.1 配置多 IP

ifconfig ens36 192.168.10.40 netmask 255.255.255.0

6.5.2 配置 Nginx

server {listen 192.168.10.123:81;server_name www.look.com;charset utf-8;access_log logs/www.look.access.log;location / {root /usr/local/nginx/html/look;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 192.168.10.140:81;server_name www.abc.com;charset utf-8;access_log logs/www.abc.access.log;location / {root /usr/local/nginx/html/abc;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}

在這里插入圖片描述
在這里插入圖片描述

6.6 基于端口的虛擬主機

6.6.1 配置不同端口

server {listen 8080;server_name www.look.com;charset utf-8;access_log logs/www.look.access.log;location / {root /usr/local/nginx/html/look;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 8081;server_name www.abc.com;charset utf-8;access_log logs/www.abc.access.log;location / {root /usr/local/nginx/html/abc;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}

在這里插入圖片描述
在這里插入圖片描述


總結

本文系統介紹了 Web 服務的基本概念、HTTP/HTTPS 協議、Nginx 的核心特性及其配置方法。通過理解 B/S 架構、請求響應流程、靜態與動態資源的區別,以及 Nginx 的高并發處理機制,讀者可以更好地構建和優化 Web 服務。Nginx 的靈活配置與高性能使其成為現代 Web 架構中不可或缺的重要組成部分。掌握其虛擬主機、訪問控制、狀態監控等高級功能,將有助于提升網站的安全性、可用性和可維護性。

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

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

相關文章

CC-Link IE FB 轉 DeviceNet 實現歐姆龍 PLC 與松下機器人在 SMT 生產線錫膏印刷環節的精準定位控制

案例背景在電子制造行業&#xff0c;SMT&#xff08;表面貼裝技術&#xff09;生產線對設備的精準控制要求極高。某電子制造企業的 SMT 生產線中&#xff0c;錫膏印刷機、SPI&#xff08;錫膏厚度檢測儀&#xff09;等前段設備采用了基于 CC-Link IE FB 主站的歐姆龍 NJ 系列 P…

IP5326_BZ 支持C同口輸入輸出的移動電源芯片 2.4A的充放電電流 支持4LED指示燈

IP5326 是一款集成升壓轉換器、鋰電池充電管理、電池電量指示的多功能電源管理 SOC&#xff0c;為移動電源提供完整的電源解決方案。得益于 IP5326 的高集成度與豐富功能,使其在應用時僅需極少的外圍器件&#xff0c;并有效減小整體方案的尺寸&#xff0c;降低 BOM 成本。IP532…

若依基礎學習

若依基礎學習 1.修改數據庫密碼以及連接名&#xff1a; RuoYi-Vue-master\ruoyi-admin\src\main\resources\application-druid.yml2.各個文件作用&#xff1a; ruoyi-admin (主啟動)├── ruoyi-framework (框架核心)│ ├── ruoyi-common (通用工具)│ └── ruoyi-sy…

靶向肽Dcpep

名稱&#xff1a;靶向肽Dcpep三字母序列&#xff1a;NH2-Phe-Tyr-Pro-Ser-Tyr-His-Ser-Thr-Pro-Gln-Arg-Pro-OH單字母序列&#xff1a;NH2-FYPSYHSTPQRP-OH分子式&#xff1a;C69H94N18O19分子量&#xff1a;1479.62備注&#xff1a;僅供科研&#xff0c;不用于人體簡述&#x…

華為在國內搞的研發基地有多野?標桿游學帶你解鎖“研發界頂流”

寶子們&#xff01;原來華為在國內有這么多“寶藏研發基地”&#xff0c;之前總覺得遙不可及走進深圳坂田總部——1.3平方公里的園區&#xff0c;走進去就像進了“科技版大觀園”&#xff0c;21層研發主樓看著就很有氣勢&#xff0c;天鵝湖邊的路全用科學家名字命名&#xff0c…

linux缺頁中斷頻繁怎么定位

1,怎么看內存是否有缺頁中斷 查看日志: dmesg | grep “do fault” perf record -e page-faults -g -p <PID> 系統級監控: 使用 vmstat 查看全局缺頁中斷(si/so 表示換入/換出頁數) vmstat 1 # 每秒刷新,觀察 si/so 列 iostat顯示磁盤使用情況,舉例iostat -x …

06-Hadoop生態系統組件(2)

4. 數據查詢組件 4.1 Apache Hive詳解 from typing import Dict, List, Any, Optional, Tuple, Union from dataclasses import dataclass from enum import Enum from datetime import datetime import re import jsonclass HiveTableType(Enum):"""Hive表類型…

【自動化實戰】Python操作Excel/WORD/PDF:openpyxl與docx庫詳解

在現代辦公環境中&#xff0c;我們經常需要處理各種文檔格式&#xff0c;如Excel表格、Word文檔和PDF文件。手動處理這些文檔不僅耗時&#xff0c;而且容易出錯。Python提供了多個強大的庫來實現文檔處理的自動化&#xff0c;本文將重點介紹如何使用openpyxl和docx庫來操作Exce…

構建安全的自動駕駛:軟件測試中的編碼規范與AI驗證

自動駕駛不再只是未來想象&#xff0c;它正在以驚人的速度走向現實。但這一變革也帶來了軟件開發的全新命題。與傳統車輛不同&#xff0c;自動駕駛依賴復雜的AI模型、傳感系統和車載決策單元&#xff0c;必須應對更多現實環境的不確定性。在強監管、高風險、快節奏的背景下&…

2025高教社數學建模國賽C題 - NIPT的時點選擇與胎兒的異常判定(完整參考論文)

基于機器學習與統計模型的NIPT檢測優化與異常判定問題研究 摘要 非侵入性產前檢測(NIPT)作為一種無創安全的胎兒染色體異常篩查技術,在現代產前醫療中發揮著重要作用,其準確性與檢測時機及異常判定的科學性直接影響臨床決策。然而,男胎Y染色體濃度受孕周數、孕婦BMI等多…

一種基于注解與AOP的Spring Boot接口限流防刷方案

1. 添加Maven依賴<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupI…

代碼隨想錄二刷之“貪心算法”~GO

簡單題目 1.455. 分發餅干 - 力扣&#xff08;LeetCode&#xff09; func findContentChildren(g []int, s []int) int {sort.Ints(g)sort.Ints(s)index : 0for i : 0;i<len(s);i{if index < len(g) && g[index] < s[i]{index}}return index }感悟&#xff…

Pod自動重啟問題排查:JDK 17 EA版本G1GC Bug導致的應用崩潰

Pod自動重啟問題排查:JDK 17 EA版本G1GC Bug導致的應用崩潰 問題背景 在生產環境中,我們遇到了一個嚴重的穩定性問題:應用Pod頻繁自動重啟,導致服務不穩定。通過深入分析JVM崩潰日志,最終定位到是JDK 17 EA版本中G1GC的一個已知Bug導致的。 問題現象 1. Pod重啟表現 應…

HTML文本格式化標簽

HTML提供了多種標簽用于文本的格式化&#xff0c;這些標簽可以改變文本的外觀&#xff08;如粗細、斜體&#xff09;或賦予文本特定的含義&#xff08;如強調、引用&#xff09;。1. 基本文本樣式標簽&#xff08;1&#xff09;粗體文本使用<b>或<strong>標簽可以使…

數據結構之單鏈表和環形鏈表的應用(二)-

目錄一、相交鏈表二、環形鏈表I三、環形鏈表II總結一、相交鏈表 相交鏈表 首先理解什么是鏈表相交&#xff0c;相交即存在共用的節點&#xff0c;鏈表相交有三種情況&#xff0c; 中間位置相交頭部就開始相交尾部相交 如圖pcurA和pcurB就都有一個next指針指向同一個節點 這…

屬性關鍵字

屬性關鍵字深拷貝與淺拷貝類型各類對象深淺拷貝判斷完全深拷貝的實現屬性關鍵字property、synthesize和dynamic原子操作讀寫權限內存管理strong &#x1f19a; copy總結深拷貝與淺拷貝 先前學習OC時已經對深淺拷貝進行了一次學習&#xff0c;這里進行一個復習總結和補充&#…

突發奇想,還未實踐,在Vben5的Antd模式下,將表單從「JS 配置化」改寫成「模板可視化」形式(豆包版)

在 Vben5 的 Antd 模式下&#xff0c;完全可以將表單從「JS 配置化」改寫成「模板可視化」形式&#xff0c;把表單項直接寫在 Vue 模板中&#xff0c;更直觀且符合傳統 Vue 開發習慣。以下是完整的改寫示例&#xff0c;保留原功能但結構更清晰&#xff1a; 改寫思路 放棄 JS 中…

【更新完畢】2025數學建模國賽E題思路代碼文章高教社杯全國大學生數學建模-AI 輔助智能體測

全部更新完畢 包含完整的文章全部問題的代碼、結果、圖表 完整內容請看文末最后的推廣群基于AI姿態識別的立定跳遠運動分析與個性化訓練優化研究 隨著《國家學生體質健康標準》的頒布實施&#xff0c;通過AI技術輔助體育運動分析已成為提升學生體質健康水平的重要手段。本研究針…

小白友好,無需基礎也能快速上手的AI部署工具,一鍵部署

AI大模型相信已經成為許多人工作和生活中的得力助手。然而&#xff0c;對于大多數普通用戶而言&#xff0c;將強大的AI模型部署到自己的電腦上&#xff0c;似乎是一項遙不可及的技術活&#xff0c;往往涉及到復雜的命令行操作、環境配置和代碼調試。那有沒有一種工具&#xff0…

《Python復刻植物大戰僵尸開源項目實戰:Pygame框架+JSON關卡設計,解鎖塔防游戲開發新技能》?

&#x1f4cc; 大家好&#xff0c;我是智界工具庫&#xff0c;每天分享好用實用且智能的開源項目&#xff0c;以及在JAVA語言開發中遇到的問題&#xff0c;如果本篇文章對您有所幫助&#xff0c;請幫我點個小贊小收藏小關注吧&#xff0c;謝謝喲&#xff01;&#x1f618; 博主…