欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx反向代理與緩存配置方式

 更新時間:2025年07月24日 10:01:24   作者:LKAI.  
本文指導Nginx安裝、負載均衡配置(含輪詢、備用、權重等參數(shù))、真實IP日志記錄及緩存機制設置,涵蓋反向代理、服務器狀態(tài)管理與緩存驗證測試

實驗環(huán)境

設置主機名

hostnamectl set-hostname xxx

一、編譯安裝nginx1.28(lb、web1、web2)

dnf -y install openssl-devel zlib-devel pcre-devel
useradd -r -s /bin/false -M nginx

上傳nginx-1.28.0.tar.gz源碼包到/root目錄

tar xf nginx-1.28.0.tar.gz
cd nginx-1.28.0/
./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --with-http_ssl_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_stub_status_module --with-http_addition_module --with-http_random_index_module --with-http_slice_module
make -j$(nproc) && make install
chown -R nginx:nginx /usr/local/nginx/
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

創(chuàng)建systemctl管理nginx文件

tee /usr/lib/systemd/system/nginx.service <<EOF
[Unit]
Description=Nginx server daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecReload=/usr/local/nginx/sbin/nginx -s reload
KillMode=process

[Install]
WantedBy=multi-user.target
EOF

啟動nginx服務

systemctl enable --now nginx

二、準備網(wǎng)頁

為了更好的測試,這里網(wǎng)站內(nèi)容不一致,真是生成環(huán)境網(wǎng)站內(nèi)容一樣

web1

echo '<h1>Welcome to web1!</h1>' > /usr/local/nginx/html/index.html

web2

  • echo '<h1>Welcome to web2!</h1>' > /usr/local/nginx/html/index.html

訪問網(wǎng)頁

使用瀏覽器訪問192.168.10.41

使用瀏覽器訪問192.168.10.42

三、配置負載均衡和反向代理(lb)

1、upstream

upstream 是 Nginx 中用于定義后端服務器組的指令塊,屬于HTTP 核心模塊的一部分。它主要用于反向代理和負載均衡,允許將客戶端請求分發(fā)到多個后端服務器(如 Web 應用服務器、API 服務、數(shù)據(jù)庫等)

(1)修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

在http字段中
    upstream backend {
        server 192.168.10.41;
        server 192.168.10.42;
    }

proxy_pass http://backend;

(2)重啟nginx服務

systemctl restart nginx

(3)訪問驗證

使用瀏覽器訪問192.168.10.40

刷新

會輪詢調(diào)度到每臺web服務器中

2、upstream 模塊的后端服務器參數(shù)

(1)backup

backup專門用于定義備用服務器,將服務器標記為備用節(jié)點(主節(jié)點不可用時啟用)。

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

重啟nginx服務

systemctl restart nginx

驗證

使用瀏覽器訪問192.168.10.40

只能調(diào)度到web1服務器

關閉web1的ngix服務

systemctl stop nginx

使用瀏覽器再次訪問192.168.10.40

因為web1的nginx服務已經(jīng)停止,所以被調(diào)度到web2備用服務器上

測試完畢后開啟web1的nginx服務

(2)weight

設置后端服務器權重值(負載均衡比例)

默認權重 1,不支持小數(shù)(如 weight=1.5 會報錯)

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

重啟nginx服務

systemctl restart nginx

訪問驗證

curl 192.168.10.40

總共訪問5次,web1會處理3次,web2會處理2次

(3)down

用于手動標記某臺服務器為"停機維護"狀態(tài),Nginx 不會將任何請求轉發(fā)給它。不同于 backup(備用服務器),down 是顯式禁用,通常用于:服務器維護期間、故障排查時隔離問題節(jié)點。

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

重啟nginx服務

systemctl restart nginx

訪問驗證

使用瀏覽器訪問192.168.10.40

只能訪問到web1服務器

(4)max_conns

限制單臺服務器的最大并發(fā)連接數(shù),防止過載。

當服務器的活躍連接數(shù)達到 max_conns 時,新請求會被轉發(fā)到其他可用服務器。

默認值:0(無限制)。

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

重啟nginx服務

systemctl restart nginx

(5)least_conn

使用 least_conn(最少連接數(shù))策略,Nginx 會將新請求優(yōu)先分配給當前活躍連接數(shù)最少的后端服務器。

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

重啟nginx服務

systemctl restart nginx

四、Nginx 日志記錄真實客戶端 IP 地址

(1)開啟日志(web1、web2)

vim /usr/local/nginx/conf/nginx.conf

修改:

$http_x_forwarded_for:為真實客戶端IP

重啟nginx服務

systemctl restart nginx

(2)查看訪問日志(web1、web2)

tail -f /usr/local/nginx/logs/access.log

輸入命令后使用瀏覽器訪問192.168.10.40

$http_x_forwarded_for變量的值為空,用“-”代替

(3)修改配置文件(lb)

vim /usr/local/nginx/conf/nginx.conf

添加:

        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 Host $host;

作用:將客戶端請求的原始 Host 頭(域名)傳遞給后端服務器。

proxy_set_header X-Real-IP $remote_addr;

作用:將客戶端的真實 IP 地址傳遞給后端服務器,存儲在自定義頭 X-Real-IP 中。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

作用:追加客戶端 IP 到 X-Forwarded-For 頭,用于標識請求鏈路上的所有代理 IP。

重啟nginx服務

systemctl restart nginx

(4)查看訪問日志(web1、web2)

tail -f /usr/local/nginx/logs/access.log

輸入命令后使用瀏覽器訪問192.168.10.40

真實訪問IP為192.168.10.1

五、nginx緩存(lb)

(1)修改配置文件

vim /usr/local/nginx/conf/nginx.conf

添加:

    proxy_buffering on;
    proxy_temp_path /usr/local/nginx/proxy_temp;
    proxy_cache_path /usr/local/nginx/proxy_cache
        levels=1:2
        keys_zone=my-cache:100m
        inactive=600m
        max_size=2g
        use_temp_path=off;

            proxy_cache my-cache;
            proxy_cache_valid 200 304 301 302 8h;
            proxy_cache_valid 404 1m;
            proxy_cache_valid any 1d;
            proxy_cache_key "$scheme://$host$uri$is_args$args";

            add_header X-Cache-Status $upstream_cache_status;
            proxy_cache_min_uses 3;
            proxy_cache_lock on;

重啟nginx服務

systemctl restart nginx

(2)訪問驗證

使用瀏覽器訪問192.168.10.40

x-cache-status返回“MISS“表示未命中緩存,從后端獲取

刷新超過三次(觸發(fā)緩存)

x-cache-status返回“HIT “表示響應來自緩存

觀察 X-Cache-Status 的值:

  • HIT:響應來自緩存
  • MISS:未命中緩存,從后端獲取
  • BYPASS:顯式跳過緩存(如設置了 proxy_cache_bypass)
  • EXPIRED:緩存已過期
  • STALE:后端不可用時返回舊緩存

當看到的網(wǎng)頁不變時,不是輪詢失效,而是訪問請求命中緩存,不在請求后端服務器。在真實生成環(huán)境中,網(wǎng)頁都是一樣的,這里只是為了測試輪詢效果的展示。

(3)查看生成緩存文件

tree /usr/local/nginx/proxy_cache/

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Nginx反代Ollama接口跨域無法逐字輸出問題詳解

    Nginx反代Ollama接口跨域無法逐字輸出問題詳解

    這篇文章主要介紹了在本地部署DeepSeek模型,并通過Ollama管理,內(nèi)網(wǎng)穿透到公網(wǎng),再使用Nginx反向代理Ollama接口時遇到的跨域問題,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • Nginx配置文件詳解

    Nginx配置文件詳解

    Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發(fā)的。Nginx功能豐富,可作為HTTP服務器,也可作為反向代理服務器,郵件服務器。這篇文章主要介紹了Nginx配置詳解,需要的朋友可以參考下
    2017-05-05
  • nginx結合keepalived實現(xiàn)高可用的完整步驟

    nginx結合keepalived實現(xiàn)高可用的完整步驟

    這篇文章主要給大家介紹了關于nginx結合keepalived實現(xiàn)高可用的完整步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • Nginx配置多臺機器實現(xiàn)負載均衡的教程詳解

    Nginx配置多臺機器實現(xiàn)負載均衡的教程詳解

    這篇文章主要為大家詳細介紹了Nginx配置多臺機器實現(xiàn)負載均衡的相關教程,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • nginx做代理轉發(fā)前端請求到后端的代碼示例

    nginx做代理轉發(fā)前端請求到后端的代碼示例

    Nginx作為反向代理服務器,可以有效處理請求并轉發(fā)到后端服務器,這篇文章主要介紹了nginx做代理轉發(fā)前端請求到后端的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • nginx 如何實現(xiàn)讀寫限流的方法

    nginx 如何實現(xiàn)讀寫限流的方法

    這篇文章主要介紹了nginx 如何實現(xiàn)讀寫限流的方法的相關資料,這里提供實例代碼及如何配置,需要的朋友可以參考下
    2016-12-12
  • 加速nginx性能: 開啟gzip和緩存

    加速nginx性能: 開啟gzip和緩存

    nginx 是一個高性能的 Web 服務器,之前也寫過一些關于 nginx 的文章。為了提高博客的響應速度,可以從設置 nginx 的 gzip 和緩存這2方面入手。為字體開啟 gzip 和緩存能大大減少帶寬的消耗
    2017-03-03
  • Nginx訪問本地靜態(tài)資源詳細步驟(推薦)

    Nginx訪問本地靜態(tài)資源詳細步驟(推薦)

    Nginx?(engine?x)?是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務,這篇文章主要介紹了nginx配置訪問本地靜態(tài)資源,需要的朋友可以參考下
    2022-12-12
  • Nginx?Rewrite及Location的使用與區(qū)別

    Nginx?Rewrite及Location的使用與區(qū)別

    rewrite和location的功能有點相像,都能實現(xiàn)跳轉,本文主要介紹了Nginx?Rewrite及Location的使用與區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Nginx配置Prometheus監(jiān)控的實現(xiàn)

    Nginx配置Prometheus監(jiān)控的實現(xiàn)

    本文主要介紹了Nginx配置Prometheus監(jiān)控的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02

最新評論