nginx(筆記)

配置高可用集群

🧱 Nginx 高可用架構圖(主流方案)

          ??客戶端請求┌───────────────┐│   Virtual IP  │  ← Keepalived 提供高可用浮動IP└──────┬────────┘│┌──────────┴──────────┐│                     │
┌──▼───┐             ┌───▼───┐
│Nginx主│             │Nginx備│   ← 兩臺Nginx組成主備
└──┬───┘             └───┬───┘│                      │▼                      ▼
多個后端應用服務器,如 Tomcat、SpringBoot、Node、PHP 等

📦 組件列表

組件說明
Nginx做反向代理、負載均衡
Keepalived提供 高可用虛擬 IP(VIP),主備切換
后端服務池實際處理業務請求的服務(Tomcat/SpringBoot等)

🔧 步驟一:部署兩臺 Nginx + Keepalived

比如:

主機名角色IP
nginx1master192.168.1.10
nginx2backup192.168.1.11
VIP虛擬IP192.168.1.100

🧰 步驟二:安裝 Nginx 和 Keepalived(每臺都裝)

參考你上面安裝的 nginx/keepalived 流程就行。

?? 步驟三:配置 Keepalived(主從)

🔷 主節點 /etc/keepalived/keepalived.conf

conf復制編輯vrrp_instance VI_1 {state MASTERinterface eth0               # 網卡名稱,根據實際改virtual_router_id 51priority 100                 # 主的優先級高advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.1.100            # VIP 地址}
}

🔷 備節點 /etc/keepalived/keepalived.conf

c復制編輯vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90                  # 比主低advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.1.100}
}

🚀 步驟四:配置 Nginx(兩臺一樣)

你只需要配置一個負載均衡策略,監聽 VIP 端口:

nginx.conf 示例:

nginx復制編輯http {upstream backend_servers {server 192.168.1.21:8080;server 192.168.1.22:8080;}server {listen 80;server_name localhost;location / {proxy_pass http://backend_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}
}

? 步驟五:啟動服務并測試

bash復制編輯# 啟動 keepalived(每臺都啟動)
systemctl start keepalived
systemctl enable keepalived# 啟動 nginx(每臺都啟動)
systemctl start nginx
systemctl enable nginx

🧪 測試高可用效果

  1. 訪問 http://192.168.1.100/ 應正常跳轉到后端服務器。

  2. 關閉主 Nginx 節點:

    bash復制編輯systemctl stop keepalived
  3. 浮動 IP 會自動漂移到 backup 節點,訪問仍正常。

🧠 可選:加入 Nginx 狀態檢測(高級)

vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2weight -20
}vrrp_instance VI_1 {...track_script {chk_nginx}
}

check_nginx.sh 內容:

#!/bin/bash
if ! pgrep nginx > /dev/null; thensystemctl stop keepalived
fi

https證書配置

https必須配置在nginx的443端口下面

基本配置

ssl_certificate /usr/local/nginx/cert/cert.crt;
ssl_certificate_key /usr/local/nginx/cert/cert.key;

Nginx HTTPS 相關完整配置匯總

nginx復制編輯server {listen 443 ssl http2;                       # 監聽443端口,啟用SSL和HTTP/2server_name yourdomain.com www.yourdomain.com;# 證書文件(請用你自己的路徑和證書文件替換)ssl_certificate /path/to/fullchain.pem;   # 包含完整證書鏈的證書文件ssl_certificate_key /path/to/privkey.pem; # 私鑰文件# TLS協議版本,禁用不安全的舊版本ssl_protocols TLSv1.2 TLSv1.3;# 加密套件(強加密,Mozilla推薦)ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';# 服務器優先使用自己的加密套件順序,避免弱加密ssl_prefer_server_ciphers on;# SSL會話緩存,提升性能,避免重復握手ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;# 啟用 OCSP Stapling(證書狀態快速驗證)ssl_stapling on;ssl_stapling_verify on;# 解析 OCSP 請求的 DNS 服務器resolver 8.8.8.8 8.8.4.4 valid=300s;resolver_timeout 5s;# HTTP Strict Transport Security (HSTS),強制客戶端使用 HTTPSadd_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;# 防止內容被iframe嵌套,減少點擊劫持攻擊add_header X-Frame-Options SAMEORIGIN;# 防止XSS攻擊add_header X-XSS-Protection "1; mode=block";# 禁用內容類型嗅探add_header X-Content-Type-Options nosniff;# 根目錄和首頁root /var/www/html;index index.html index.htm;location / {try_files $uri $uri/ =404;}# 反向代理示例(根據需求)location /api/ {proxy_pass http://127.0.0.1:8080/;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;}# 日志路徑(可根據需要修改)access_log /var/log/nginx/https_access.log;error_log /var/log/nginx/https_error.log;
}# HTTP 端口配置,重定向到 HTTPS
server {listen 80;server_name yourdomain.com www.yourdomain.com;# 所有請求跳轉到 HTTPSreturn 301 https://$host$request_uri;
}

配置說明

配置項作用
listen 443 ssl http2;開啟 HTTPS 和 HTTP/2 協議
ssl_certificate指定證書文件,需包含完整證書鏈(通常是 fullchain.pem
ssl_certificate_key指定私鑰文件
ssl_protocols TLSv1.2 TLSv1.3;只允許 TLS1.2 和 TLS1.3,禁用過時協議
ssl_ciphers允許的加密算法,保證強加密
ssl_prefer_server_ciphers on;優先使用服務器推薦的加密算法順序
ssl_session_cache緩存 SSL 會話,減少握手消耗
ssl_session_timeout會話緩存有效期
ssl_stapling on;啟用 OCSP Stapling,提高證書狀態驗證速度
ssl_stapling_verify on;驗證 OCSP 響應
resolverDNS 服務器,用于 OCSP 請求
add_header Strict-Transport-SecurityHSTS,強制客戶端只能訪問 HTTPS
add_header X-Frame-Options SAMEORIGIN;防止點擊劫持
add_header X-XSS-Protection啟用瀏覽器 XSS 防護
add_header X-Content-Type-Options nosniff;防止瀏覽器內容嗅探
root指定靜態文件目錄
location /api/反向代理示例,代理 API 請求到后端
access_logerror_log日志文件位置
listen 80 + return 301HTTP 請求跳轉到 HTTPS

1. 客戶端證書驗證(雙向認證)

雙向 TLS 認證,除了服務器驗證客戶端,客戶端也需提供證書,常用于高安全場景。

nginx復制編輯server {listen 443 ssl http2;server_name yourdomain.com;ssl_certificate /path/to/server.crt;ssl_certificate_key /path/to/server.key;ssl_client_certificate /path/to/ca.crt;    # 受信任客戶端證書的CA證書ssl_verify_client on;                       # 開啟客戶端證書驗證ssl_verify_depth 2;                         # 證書鏈最大深度# 其他ssl配置...location / {# 正常服務配置}
}
  • 客戶端必須提供受信任CA簽發的證書,否則連接被拒絕。

2. 限速限流配置(防攻擊)

控制請求速率,防止刷接口、DDOS等攻擊。

nginx復制編輯http {# 定義限制區域,1分鐘最多10個請求limit_req_zone $binary_remote_addr zone=one:10m rate=10r/m;server {listen 443 ssl;server_name yourdomain.com;# 其他ssl配置...location /api/ {limit_req zone=one burst=20 nodelay;proxy_pass http://127.0.0.1:8080/;# 代理頭...}}
}
  • limit_req_zone 定義速率限制區域。
  • limit_req 在具體路徑生效,burst 允許短時突發,nodelay 表示超出限制立即拒絕。

3. 防盜鏈和 Referer 檢查

只允許指定來源訪問資源,防止被別的站盜用圖片、視頻等資源。

nginx復制編輯location /images/ {valid_referers none blocked yourdomain.com *.yourdomain.com;if ($invalid_referer) {return 403;}# 資源配置
}
  • valid_referers 設定允許的 Referer 來源。
  • $invalid_referer 變量判斷是否非法來源。

4. gzip 壓縮

減少傳輸體積,提高響應速度。

nginx復制編輯http {gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;gzip_min_length 256;gzip_proxied any;gzip_comp_level 5;gzip_vary on;
}
  • 開啟 gzip,指定壓縮的內容類型,設置壓縮級別等。

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

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

相關文章

聊聊AI大模型的上下文工程(Context Engineering)

聊聊AI上下文工程上下文工程(Context Engineering)技術簡介 核心定義“上下文工程是一門精細的藝術與科學——其本質是在每個Agent執行步驟中,將恰到好處的信息精準填充至上下文窗口。” —— Andrej Karpathy(前特斯拉AI總監&…

searxng 對接openweb-UI實現大模型通過國內搜索引擎在線搜索

先看一下 qwen3-4b模型的效果 SearXNG簡介:SearXNG 是一個免費的互聯網元搜索引擎,它匯總了來自各種搜索服務和數據庫的結果。用戶既不會被跟蹤,也不會被分析。 官方項目:https://github.com/searxng/searxng-docker 項目文檔&a…

巨人網絡持續加強AI工業化管線,Lovart國內版有望協同互補

在游戲行業全面邁入 AI 工業化時代的關鍵窗口期,巨人網絡正以系統性布局和前瞻性戰略加速AI內容生產閉環,其構建的AI工業化生產管線及多模態大模型能力矩陣,正釋放出顯著的生產效率和創意表達力。公司內部數據顯示,自研AI代碼生成…

TypeScript---class類型

一.簡介 TypeScript 完全支持 ES2015 中引入的 class 關鍵字。 與其他 JavaScript 語言功能一樣,TypeScript 添加了類型注釋和其他語法,以允許你表達類和其他類型之間的關系。 1.字段 (1).在申明時同時給出類型 class Person {name: string;age: nu…

vue3中實現echarts打印功能

目錄一、創建項目二、項目引入echarts1、下載依賴2、項目引用3、編寫建議echarts圖表三、打印功能1、增加打印按鈕2、打印方法3、效果一、創建項目 老規矩,先從創建項目開始 npm create vitelatest print-demo(項目名稱)第一步出現的框架選擇vue,然后回車 第二步…

今日行情明日機會——20250711

上證指數放量收上影線,但依然強勢,維持在5天均線上,后續調整后,上行的概率依然大;個股上漲偏多。深證指數緩慢上漲,已經突破下跌趨勢線,目前依舊沿著5日線上行,后市依然值得期待。20…

「日拱一碼」024 機器學習——防止過擬合

目錄 數據層面 數據增強 數據正則化 ?數據采樣 模型結構層面 簡化模型 添加正則化層 早停法(Early Stopping) 訓練過程層面 使用交叉驗證 使用集成學習 調整學習率 防止過擬合是機器學習中一個非常重要的問題,它可以幫助模型在新…

持有對象-泛型和類型安全的容器

我們需要管理一批對象序列,但是又對實際運行的時候的對象類型和對象序列長度不確定的時候,用簡單的對象引用無法滿足,java有ArrayList,Map,Set等這些容器類提供,這些都實現了Collections接口,所以都屬于Collections類。…

《財稅企業經營管理秘籍(一):行業適配的獲客方式》

在財稅服務這片競爭激烈的紅海中,客戶資源如同氧氣——沒有它,企業寸步難行。然而殘酷的現實是,許多財稅企業正深陷“獲客泥潭”:投入巨大精力與成本,換來的卻是轉化渺茫、增長停滯的困境。高質量線索,已成…

使用tensorflow的多項式回歸的例子(一)

多項式回歸例1%matplotlib inlineimport tensorflow as tfimport numpy as npimport matplotlib.pyplot as plttrX np.linspace(-1, 1, 101)num_coeffs 6trY_coeffs [1, 2, 3, 4, 5, 6]trY 0for i in range(num_coeffs):trY trY_coeffs[i] * np.power(trX, i)trY np.rand…

STM32F103C8T6基于HAL庫驅動NB-IoT模塊BC26通信詳 解

一、引言: NB-IoT技術與應用場景NB-IoT( Narrow Band Internet of Things )作為低功耗廣域網( LPWAN )的核心技術,以其廣覆 蓋、低功耗、大連接、低成本的特性,廣泛應用于智能表計、環境監測、…

iOS 性能測試工具全流程:主流工具實戰對比與適用場景

在iOS開發中,性能優化往往被安排到開發后期,甚至上線前才臨時補救。但性能瓶頸通常是架構設計、資源加載、動畫機制等多方面共同作用的結果,僅憑肉眼感知和log輸出,難以精準定位。 一套合適的性能測試工具組合,不僅能幫…

目標檢測:視覺系統中的CNN-Transformer融合網絡

一、背景 無人機(UAVs)在城市自動巡邏中發揮著重要作用,但它們在圖像識別方面面臨挑戰,尤其是小目標檢測和目標遮擋問題。此外,無人機的高速飛行要求檢測系統具備實時處理能力。 為解決這些問題,我們提出了…

揭示宇宙的隱藏對稱性:群論-AI云計算拓展核心內容

通過利用云計算,借助群論對宇宙對稱性的探索,從離散群和李群等基礎概念,逐步深入到量子力學和更高自旋系統中的高級應用。 對稱性遠不止是美學上的吸引力;它是編織在宇宙結構中的一個基本原則。從雪花的復雜圖案到控制粒子的基本定…

前端項目vue3項目集成eslint@9.x跟prettier

tips: 這些涉及編輯器的修改不一定能及時生效,如果沒有生效,可以試試重啟編輯器窗口 編輯器集成 我的編輯器是vscode,需要安裝這兩個編輯器插件eslint prettier我這個配置主要是通過eslint提供的配置cli命令生成,在里面加入了對pr…

登錄超時問題的排查方法與預防經驗分享

??一、排查方法????檢查網絡連接??確保網絡穩定,嘗試重啟路由器或切換網絡(如從WiFi切換到移動數據)。使用命令(如 ping 或 traceroute)測試網絡連通性,排查是否存在丟包或高延遲。??驗證服務端狀…

uniapp,Anroid10+版本如何保存圖片并刪除

Android 10系統開始 進一步增強了平臺功能,為外部存儲設備上的應用和用戶數據提供了更好的保護。作為這項工作的一部分,平臺引入了進一步的改進,以簡化向分區存儲的轉換。 為了讓用戶更好地控制自己的文件,保護用戶隱私數據&#…

Jenkins Pipeline 語法

Pipeline 簡介 Jenkins2.x 的核心是使用 pipeline 來構建項目,也就是流水線,將 Jenkins1.0 版本中基于表單的配置信息比如 JDK/SVN 以及參數的配置都轉變成了代碼,即 pipeline as Code。 傳統的表單方式有以下缺點: 需要大量的 web 表單交互,有時候需要進行很多次的切換…

搭建滲透測試環境

一、基于docker搭建靶場 #此步驟需要科學上網 #從軟件源中下載 docker.io 和 docker -compose 軟件包及其依賴項。 sudo apt-get install docker.io docker-compose #查看docker版本 docker -v #查看docker信息 docker info #重啟docker服務 sudo systemctl daemon-reload sudo…

(一)OpenCV——噪聲去除(降噪)

高斯濾波器(針對高斯噪聲) 高斯噪聲是指它的概率密度函數服從高斯分布(即正態分布)的一類噪聲。常見的高斯噪聲包括起伏噪聲、宇宙噪聲、熱噪聲和散粒噪聲等等。 高斯濾波(Gaussian filter) 包含許多種,包括低通、帶…