點一下關注吧!!!非常感謝!!持續更新!!!
🚀 AI篇持續更新中!(長期更新)
目前2025年06月05日更新到:
AI煉丹日志-28 - Audiblez 將你的電子書epub轉換為音頻mp3 做有聲書,持續打造實用AI工具指南!📐🤖
💻 Java篇正式開啟!(300篇)
目前2025年06月11日更新到:
Java-42 深入淺出 Nginx - 緣起與發展 場景與配置快速上手
MyBatis 已完結,Spring 已完結,深入淺出助你打牢基礎!
📊 大數據板塊已完成多項干貨更新(300篇):
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余項核心組件,覆蓋離線+實時數倉全棧!
目前2025年06月05日更新到:
大數據-278 Spark MLib - 基礎介紹 機器學習算法 梯度提升樹 GBDT案例 詳解
👉 點個關注,不迷路!后續還將持續更新更多大模型+數據智能+工程實戰內容,敬請期待!
配置文件
Nginx的配置文件nginx.conf包含三個內容:
● 全局塊
● events塊
● http塊
Nginx 的配置文件(通常為 /etc/nginx/nginx.conf)采用分塊結構,主要包括以下三大類:
├── 全局塊(main block)
├── events 塊
└── http 塊├── server 塊│ └── location 塊
全局塊 Main Block
從配置文件開始到events塊之間的內容,此處的配置影響Nginx服務器整體的運行,比如Works進程的數量、錯誤日志的位置等。
- 位置: 配置文件頂部
- 作用: 配置影響整個 Nginx 服務的全局參數。
- user:設置 Nginx 進程運行用戶
- worker_processes:工作進程數量,建議設為 CPU 核心數
- error_log:指定錯誤日志路徑和日志級別
- pid:指定進程 ID 文件的位置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
Events塊
events主要影響Nginx服務器與用戶的網絡連接,比如 worker_connections 1024,標識每個process支持最大連接數是 1024
- 位置: 緊接在全局塊之后
- 作用: 控制 Nginx 的連接處理模型,與高并發性能密切相關。
- worker_connections:每個 worker 進程支持的最大連接數
- use epoll:指定事件驅動模型(Linux 通常用 epoll)
events {worker_connections 10240;use epoll;
}
HTTP塊
http塊配置是變動最頻繁的,虛擬主機的配置,監聽端口的配置,請求轉發、反向代理、負載均衡等。
- 位置: 最核心模塊
- 作用: 處理所有基于 HTTP 協議的請求,包含服務器配置、反向代理、負載均衡等。
- server 塊:定義虛擬主機(監聽端口、域名)
- location 塊:定義 URI 匹配規則和處理方式
- upstream 塊:定義上游服務器組(負載均衡)
- log_format/access_log:定義日志格式
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 /var/log/nginx/access.log main;sendfile on;keepalive_timeout 65;include /etc/nginx/conf.d/*.conf;
}
反向代理
需求一
部署tomcat,保持默認監聽8080端口。
修改Nginx配置,并重新加載:
需求二
部署一臺tomcat,保持監聽8081端口
修改Nginx配置,重新加載:
該部分主要就是 多Location的使用,語法如下:
location [=|~|~*|^~] /uri/ { … }
在Nginx配置文件中,location有如下幾種形式:
● 1正則匹配 location ~ /xxx {}
● 2不區分大小寫的正則匹配 location ~* /xxx {}
● 3匹配路徑的前綴 location ^~ /xxx {}
● 4精確匹配 location = /xxx {}
● 5普通路徑前綴匹配 location /xxx {}
優先級如下:4 > 3 > 2 > 1 > 5
負載均衡
輪詢
默認策略,每個請求按時間順序逐一分配到不同的服務器,如果某一個服務器下線,能自動剔除。
upstream wzk {server localhost:8080;server localhost:8082;
}location /abc {proxy_pass http://wzk/;
}
weight
weight代表權重,默認每一個負載的服務器都為1,權重越高被分配的請求越多(用于服務器性能不均衡的場景)
upstream wzk {server localhost:8080 weight=1;server localhost:8082 weight=2;
}
ip_hash
每個請求按照ip的hash結果分配,每一個客戶端的請求會固定分配到同一個目標服務器處理,可以解決Session問題
upstream wzk {ip_hash;server localhost:8080 weight=1;server localhost:8082 weight=2;
}
動靜分離
動靜分離就是將動態資源和靜態資源的請求處理分配到不同的服務器上,比較經典的組合就是Nginx+Tomcat(Nginx處理靜態資源,Tomcat處理動態資源),之前的例子中,Nginx反向代理目標服務器Tomcat,我們看到目標服務器ROOT的項目 index.jsp,這本身就是Tomcat在處理動態資源了。