Java-43 深入淺出 Nginx - 基本配置方式 nginx.conf Events塊 HTTP塊 反向代理 負載均衡

點一下關注吧!!!非常感謝!!持續更新!!!

🚀 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在處理動態資源了。

在這里插入圖片描述

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

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

相關文章

適配器模式深度解析:Java設計模式實戰指南與接口兼容性解決方案

適配器模式深度解析:Java設計模式實戰指南與接口兼容性解決方案 🌟 嗨,我是IRpickstars! 🌌 總有一行代碼,能點亮萬千星辰。 🔍 在技術的宇宙中,我愿做永不停歇的探索者。 ? 用代碼…

類復制.省略 class.copy.elision

class類 復制/移動省略class.copy.elision 類復制省略 (copy elision) 當滿足特定條件時,即使所選對象的構造函數和/或析構函數有副作用,實現也被允許省略從相同類型(忽略 cv 限定符)的源對象創建類對象。 在這種情況下&#…

goreplay

1.github地址 https://github.com/buger/goreplay 2.簡單介紹 GoReplay 是一個開源的網絡監控工具,可以記錄用戶的實時流量并將其用于鏡像、負載測試、監控和詳細分析。 3.出現背景 隨著應用程序的增長,測試它所需的工作量也會呈指數級增長。GoRepl…

TensorZero:開源 LLM 應用優化與可觀測性平臺

TensorZero 是一個開源的 LLM(大語言模型)應用全鏈路優化平臺,聚焦于“數據—評估—優化—實驗”自動化閉環,極大提升 LLM 產品的可觀測性、可優化性和可擴展性。無論你是 GPT 應用開發者,還是需要管理和提升 LLM 服務…

postgreSql數據遷移到openGauss的方案

從postgresql 導出sql 腳本 工具-備份 選擇格式為Plain 得到腳本用vscode 打開并編輯 首先使用查找替換功能 語法適配修改?: 替換不支持的參數如lock_timeout為lockwait_timeout 移除row_security等openGauss不支持的配置 檢查并修改物化視圖的刷新語法 …

網絡爬蟲學習心得

一、引言? 在大數據時代,數據成為了驅動決策、洞察趨勢的核心資源。出于對數據分析的濃厚興趣,以及希望能更高效獲取網絡信息的目的,我踏上了網絡爬蟲的學習之旅。通過這段時間的學習,我不僅掌握了從網頁中提取數據的技術&#…

計算機視覺與深度學習 | 基于Matlab的低照度圖像增強算法原理,公式及實現

基于Matlab的低照度圖像增強是一個重要的圖像處理領域。這里我們重點介紹一種經典且效果較好的算法:多尺度Retinex算法(Multi-Scale Retinex with Color Restoration, MSRCR),包括其原理、公式及Matlab實現。 一、核心原理:Retinex理論 Retinex理論由Edwin Land提出,其…

【Linux跬步積累】—— 網絡編程套接字(二)

🌏博客主頁:PH_modest的博客主頁 🚩當前專欄:Linux跬步積累 💌其他專欄: 🔴 每日一題 🟡 C跬步積累 🟢 C語言跬步積累 🌈座右銘:廣積糧&#xff0…

JavaScript基礎-API 和 Web API

在學習JavaScript的過程中,理解API(應用程序接口)和Web API的概念及其應用是非常重要的。這些工具極大地擴展了JavaScript的功能,使得開發者能夠創建出功能豐富、交互性強的Web應用程序。本文將深入探討JavaScript中的API與Web AP…

pikachu靶場通關筆記24 SQL注入07-http header注入

目錄 一、SQL注入 二、http header注入 1、User - Agent 頭注入 2、Referer 頭注入 3、Cookie 頭注入 4、Host 頭注入 三、extractvalue函數 四、源碼分析 1、代碼審計 2、滲透思路 五、滲透實戰 1、滲透探測 2、獲取數據庫名database 3、獲取表名table 4、獲取列…

LabVIEW振動時效處理系統

LabVIEW 開發大功率振動時效處理系統,實現工件殘余應力檢測與消除。聚焦工業場景中金屬加工件的應力處理需求,展現 LabVIEW 在跨硬件集成、實時數據處理及復雜流程控制中的技術優勢。 ? 應用場景 針對航空航天、軌道交通、重型機械等領域中鋼性焊接件…

數據定義以及數據類型

toc 數據定義以及數據類型 1. 數據創建 數據庫創建除了指定數據庫名字,還可以選擇指定數據庫字符集類型以及校對規則,mysql中utf8mb3就是utf8。 -- 使用指令創建數據庫 CREATE DATABASE hsp_db01; -- 刪除數據庫指令 DROP DATABASE hsp_db01 -- 創建…

中國汽車啟動電池市場深度剖析:現狀、趨勢與展望

一、市場規模與增長前景? QYResearch 調研團隊發布的市場報告顯示,中國汽車啟動電池市場展現出強勁的增長勢頭。預計到 2031 年,市場規模將攀升至 74.6 億美元,在未來幾年內,年復合增長率(CAGR)將穩定保持…

通過RedisCacheManager自定義緩存序列化(適用通過注解緩存數據)

1.Redis 注解默認序列化機制 1.Spring Boot整合Redis組件提供的緩存自動配置類RedisCacheConfiguration(org.springframework.boot.autoconfigure.cache), 其內部是通過Redis連接工廠RedisConnectionFactory定義了一個緩存管理器RedisCacheManager&am…

jupyter中的checkpoints為空/打不開解決辦法

jupyter中的checkpoints為空/打不開不要以為你是代碼有問題或者服務器有問題了,浪費我好幾天時間,我說怎么電腦上跑的好好的服務器上模型不見了 新建文件check 然后把checkpoints里的東西全部移動到check文件中就能看見了 checkpoints是Notebook的關鍵…

基于 Spring AI 的 MCP 客戶端/服務端實現

模型上下文協議(MCP)由Anthropic開源的開放協議,為AI模型與外部數據/工具提供了“標準化橋梁”,通過統一的接口規范,使模型能夠動態調用本地文件、數據庫、API等資源,實現“上下文感知”的智能交互。MCP的核…

python學習打卡day50

DAY 50 預訓練模型CBAM模塊 知識點回顧: resnet結構解析CBAM放置位置的思考針對預訓練模型的訓練策略 差異化學習率三階段微調 ps:今日的代碼訓練時長較長,3080ti大概需要40min的訓練時長 作業: 好好理解下resnet18的模型結構嘗試…

54、錯誤處理-【源碼流程】異常處理流程

54、錯誤處理-【源碼流程】異常處理流程 #### 異常處理流程概述 1. **執行目標方法**: - 程序執行目標方法,期間若發生異常,會被捕獲并記錄,標志當前請求結束。 - 將異常信息賦值給 dispatchException 變量。 2. **進入視圖解析…

使用 VSCode 開發 FastAPI 項目(1)

一、引言 FastAPI 是一款現代、快速(高性能)的 Web 框架,用于構建 API,使用 Python 3.7 及更高版本。它基于標準 Python 類型提示,具有自動生成文檔等出色功能。而 VSCode 憑借其輕量、強大的特性,為開發者…