極簡版 Nginx 反向代理實驗步驟

以下是最核心的反向代理實現步驟,專注于 “客戶端→Nginx 代理→后端服務” 的基礎轉發功能:

一、準備 2 臺服務器

角色IP 示例需安裝軟件
代理服務器192.168.1.10Nginx
后端服務器192.168.1.11Nginx/Apache

二、后端服務器配置(192.168.1.11)

  1. 安裝并啟動 Web 服務

    # 安裝Nginx
    yum install -y nginx   # CentOS/RHEL
    # 或 apt install -y nginx  # Ubuntu/Debian# 啟動服務
    systemctl start nginx
    systemctl enable nginx
    
  2. 設置標識頁面(便于驗證)

    echo "<h1>Backend Server: 192.168.1.11</h1>" > /usr/share/nginx/html/index.html
    

三、代理服務器配置(192.168.1.10)

  1. 安裝 Nginx

    yum install -y nginx   # 同上
    
  2. 創建反向代理配置

    # 備份默認配置
    mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak# 新建代理配置
    cat > /etc/nginx/conf.d/proxy.conf << 'EOF'
    server {listen 80;server_name localhost;location / {# 轉發到后端服務器proxy_pass http://192.168.1.11:80;# 傳遞客戶端信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
    }
    EOF
    
  3. 啟動 Nginx

    # 檢查配置
    nginx -t# 啟動服務
    systemctl start nginx
    systemctl enable nginx
    

四、驗證反向代理

  1. 客戶端直接訪問后端
    瀏覽器打開?http://192.168.1.11,顯示?Backend Server: 192.168.1.11

  2. 通過代理服務器訪問
    瀏覽器打開?http://192.168.1.10同樣顯示后端頁面內容,說明代理成功。

五、核心驗證點

  • 客戶端僅需知道代理服務器 IP(192.168.1.10),無需知道后端 IP
  • 后端服務器日志中可看到客戶端真實 IP(而非代理服務器 IP)

以上步驟完成即實現了最基礎的反向代理功能,所有操作均圍繞 “請求轉發” 核心目標,去除了額外擴展配置。

location / {

? ? proxy_pass http://192.168.42.1;

}

? ? ?proxy_set_header Host $host; # 修改請求頭,添加Host字段

proxy_set_header X-Real-IP $remote_addr; # 修改請求頭,添加X-Real-IP字段

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 修改請求頭,添加X-Forwarded-For字段 client_max_body_size 10m; # 允許客戶端請求的最大單文件字節數 client_body_buffer_size 128k; # 緩沖區代理緩沖用戶端請求的最大字節數, proxy_connect_timeout 90; # nginx跟后端服務器連接超時時間\(代理連接超時\) proxy_send_timeout 90; # 后端服務器數據回傳時間\(代理發送超時\)

proxy_read_timeout 90; # 連接成功后,后端服務器響應時間\(代理接收超時\)

proxy_buffer_size 4k; # 設置代理服務器(nginx)保存用戶頭信息的緩沖區大小

proxy_buffers 4 32k; # proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置 proxy_busy_buffers_size 64k; # 高負荷下緩沖大小(proxy_buffers*2) proxy_temp_file_write_size 64k; # 設定緩存文件夾大小,大于這個值,將從upstream服務器傳

負載均衡

模式(算法)

? ?輪詢(默認)(RR)Round Robin:將請求平均分配給所有服務器,

? ?最小連接數(Least Connections):該策略將請求分發給當前處理連接數最少的服務器,適合連接數波動較大的場景,如長連接服務。

? IP 哈希(IP Hash):通過請求的客戶端IP進行哈希運算,將來自同一IP地址的請求分發到同一臺服務器上,適合有會話保持需求的場景。

? 權重(Weight):為不同的服務器分配權重,Nginx 將根據設置的權重值來分發請求,權重越高的服務器將承擔更多的流量,適合服務器性能不均衡的場景

? ?

? ?

upstream web1{

? ? ?#默認輪詢

? ? ? ?server 192.168.x.x

? ? ? ?server 192.168.x.x

? ? ? ? ...

}

upstream wed2?{

# 最小連接數負載均衡算法 least_conn;

# 后端服務器列表

? ? ? ? ?server 192.168.1.100:80;

? ? ? ? ?server 192.168.1.101:80;

? ? ? ? ...

}

upstream wed3?{

ip_hash #ip哈希模式

# 后端服務器列表

? ? ? ? ?server 192.168.1.100:80;

? ? ? ? ?server 192.168.1.101:80;

? ? ? ? ...

}

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

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

相關文章

Windsurf 插件正式登陸 JetBrains IDE:讓 AI 直接在你的 IDE 里“打工”

那天你說,我們可以永遠在一起——成了我聽到的最高興的,而后知后覺的謊言。 而今天,AI 說:“我可以幫你寫完這段代碼。” —— 這才是真正的“永遠在一起”。 最近,AI 編程工具賽道迎來一場“潛行式革命”:Windsurf Wave 7 正式發布 JetBrains IDE 插件版本,徹底打破“A…

188. Java 異常 - Java 異常處理規范

文章目錄188. Java 異常 - Java 異常處理規范&#x1f4dc; 什么是“Catch or Specify Requirement”&#xff1f;? 兩種滿足方式方法一&#xff1a;使用 try-catch 捕獲異常方法二&#xff1a;使用 throws 聲明異常? 不遵守規則會怎樣&#xff1f;&#x1f4a1; 哪些異常必須…

泛型通配符 T、E、K、V、?

在Java后端開發中&#xff0c;你一定在寫集合類或工具類時&#xff0c;見過 T、E、K、V、? 這樣的泛型通配符。但你是否有過以下疑惑&#xff1a; T、E、K、V 到底有什么區別&#xff1f;為什么大家都用這些字母&#xff1f;List<?> 和 List 有什么不同&#xff1f;什么…

基于腳手架微服務的視頻點播系統-數據管理與網絡通信部分的預備工作

基于腳手架微服務的視頻點播系統-數據管理與網絡通信部分的預備工作一.數據管理二.網絡通信2.1客戶端通信模塊及測試用例的實現2.2MockServer搭建的相關接口介紹2.3MockServer的搭建示例一.數據管理 在前?的實現中&#xff0c;程序中的數據、以及界?操作等全部攪合在?起&am…

html表單登錄模式代碼

使用的是Content-Typeapplication/x-www-form-urlencoded形式如代碼如下的html&#xff0c;后端沒寫下去&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>管理員登錄</title><…

NLP:Transformer之self-attention(特別分享3)

本文目錄&#xff1a;一、核心思想&#xff1a;一句話概括二、計算流程的直觀比喻三、分步計算詳解&#xff08;附數字例子&#xff09;第 1 步&#xff1a;創建 Query, Key, Value 向量第 2 步&#xff1a;計算注意力分數第 3 步&#xff1a;縮放并應用 Softmax第 4 步&#x…

25、優化算法與正則化技術:深度學習的調優藝術

學習目標:深入理解各種優化算法的原理和適用場景,掌握學習率調度的方法和策略,學會使用Dropout、批歸一化等正則化技術,理解早停和驗證策略,建立深度學習調優的系統性知識。 深度學習的成功不僅依賴于精巧的模型架構,更在于巧妙的訓練策略。如果說網絡架構是房屋的設計圖…

Netty-01-NIO前置知識

目錄 NIO三大組件 一. ByteBuffer 基本用法 DirectByteBuffer與HeapByteBuffer對比 字符串轉ByteBuffer ByteBuffer.wrap(byte[] ) 粘包與拆包 文件編程 零拷貝transferTo 二. 阻塞與非阻塞Channel 三. Selector SelectionKey&#xff08;重點&#xff09; Select…

知識點17:多Agent系統架構設計模式

知識點17&#xff1a;多Agent系統架構設計模式 核心概念 掌握系統架構思維&#xff0c;理解多Agent系統的設計原則和模式 架構設計核心概念 在構建多Agent系統時&#xff0c;良好的架構設計是系統成功的關鍵。本節將介紹多Agent系統架構設計中的核心概念&#xff0c;包括單點瓶…

數據庫造神計劃第五天---增刪改查(CRUD)(1)

&#x1f525;個人主頁&#xff1a;尋星探路 &#x1f3ac;作者簡介&#xff1a;Java研發方向學習者 &#x1f4d6;個人專欄&#xff1a;《從青銅到王者&#xff0c;就差這講數據結構&#xff01;&#xff01;&#xff01;》、 《JAVA&#xff08;SE&#xff09;----如此簡單&a…

基于Vue3的人工智能生成內容標識服務平臺前端頁面設計

效果圖&#xff1a;素材庫&#xff1a;App.vue<template><div id"app"><!-- 頭部導航 --><Header /><!-- 主要內容區域 --><main class"main-content"><div class"container"><!-- 強制性國家標準…

使用 MyCat 實現 MySQL 主從讀寫分離

文章目錄使用 MyCat 實現 MySQL 主從讀寫分離完整指南一、MySQL 讀寫分離基礎概述1.1 讀寫分離工作原理1.2 為什么需要讀寫分離1.3 讀寫分離的兩種實現方式主流讀寫分離中間件對比二、MyCat 中間件簡介2.1 MyCat 核心功能2.2 MyCat 適用場景三、環境準備與 MyCat 安裝3.1 前提&…

物聯網傳感器檢測實驗

/*------------------------------------------------------------------------------ * @文件名 : handle * @描述 : 用戶處理函數 * @作者 : 物聯網項目組 * @日期 : 2023/04/01 * @版本 : V0.0.2 *****************************…

什么是dirsearch、xray、durpsuite、sqlmap?

你提到的 dirsearch、xray、durpsuite&#xff08;可能為筆誤&#xff0c;推測是 ??Burp Suite??&#xff09;和 sqlmap 均為網絡安全領域中常用的工具&#xff0c;主要用于 Web 應用的安全測試、漏洞檢測或滲透測試。以下分別詳細說明&#xff1a;??1. dirsearch????…

lamp腳本部署

#!/bin/bash #關閉防火墻和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 #配置yum網絡源 echo “正在配置yum倉庫” rm -rf /etc/yum.repos.d/* wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &am…

Redis Hash數據類型深度解析:從命令、原理到實戰場景

前言 在Redis的眾多數據結構中&#xff0c;Hash&#xff08;哈希&#xff09;類型占據著至關重要的地位。Redis本身就是一個高性能的鍵值&#xff08;Key-Value&#xff09;數據庫&#xff0c;其底層的鍵值對便是通過哈希方式組織的。而Hash數據類型則更進一步&#xff0c;它允…

【C++實戰?】解鎖C++文件操作:從基礎到實戰的進階之路

目錄一、文件操作的基本概念1.1 文件的分類與打開方式1.2 文件流的概念與相關類&#xff08;ifstream、ofstream、fstream&#xff09;1.3 文件操作的基本流程二、文本文件的讀寫實戰2.1 文本文件的打開與關閉2.2 文本文件的寫入操作&#xff08;<< 運算符、write 函數&a…

從C++開始的編程生活(9)——模板初階

前言 本系列文章承接C語言的學習&#xff0c;需要有C語言的基礎才能學會哦~ 第8篇主要講的是有關于C的模板初階。 C才起步&#xff0c;都很簡單&#xff01;&#xff01; 目錄 前言 模板初階 基本語法 函數模板的實例化 顯式實例化的作用 類模板 基本語法 模板初階 模板…

計算機網絡——傳輸層(25王道最新版)

傳輸層傳輸層提供的服務進程 端口號 傳輸層協議之間的關系socket套接字有鏈接 VS 無連接 | 可靠 VS 不可靠UDP數據報及檢驗數據報格式檢驗方法TCPTCP協議的三大階段TCP報文段格式&#xff08;很重要&#xff09;建立連接&#xff08;三次握手&#xff09;&#xff08;超級超級重…

羽毛球地板:從專業運動場景到全民健身市場的技術躍遷與產業重構

在全球體育產業向“專業化大眾化”雙軌并行的趨勢下&#xff0c;羽毛球地板作為運動場景的核心基礎設施&#xff0c;正經歷從單一功能型產品向“性能優化場景適配智能管理”一體化解決方案的轉型。據QYResearch統計&#xff0c;2031年全球羽毛球地板市場規模將達15.95億元&…