最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

實(shí)驗(yàn)環(huán)境

設(shè)置主機(jī)名

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

啟動(dòng)nginx服務(wù)

systemctl enable --now nginx

二、準(zhǔn)備網(wǎng)頁(yè)

為了更好的測(cè)試,這里網(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èn)網(wǎng)頁(yè)

使用瀏覽器訪問(wèn)192.168.10.41

使用瀏覽器訪問(wèn)192.168.10.42

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

1、upstream

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

(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服務(wù)

systemctl restart nginx

(3)訪問(wèn)驗(yàn)證

使用瀏覽器訪問(wèn)192.168.10.40

刷新

會(huì)輪詢(xún)調(diào)度到每臺(tái)web服務(wù)器中

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

(1)backup

backup專(zhuān)門(mén)用于定義備用服務(wù)器,將服務(wù)器標(biāo)記為備用節(jié)點(diǎn)(主節(jié)點(diǎn)不可用時(shí)啟用)。

修改配置文件

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

添加:

重啟nginx服務(wù)

systemctl restart nginx

驗(yàn)證

使用瀏覽器訪問(wèn)192.168.10.40

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

關(guān)閉web1的ngix服務(wù)

systemctl stop nginx

使用瀏覽器再次訪問(wèn)192.168.10.40

因?yàn)閣eb1的nginx服務(wù)已經(jīng)停止,所以被調(diào)度到web2備用服務(wù)器上

測(cè)試完畢后開(kāi)啟web1的nginx服務(wù)

(2)weight

設(shè)置后端服務(wù)器權(quán)重值(負(fù)載均衡比例)

默認(rèn)權(quán)重 1,不支持小數(shù)(如 weight=1.5 會(huì)報(bào)錯(cuò))

修改配置文件

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

添加:

重啟nginx服務(wù)

systemctl restart nginx

訪問(wèn)驗(yàn)證

curl 192.168.10.40

總共訪問(wèn)5次,web1會(huì)處理3次,web2會(huì)處理2次

(3)down

用于手動(dòng)標(biāo)記某臺(tái)服務(wù)器為"停機(jī)維護(hù)"狀態(tài),Nginx 不會(huì)將任何請(qǐng)求轉(zhuǎn)發(fā)給它。不同于 backup(備用服務(wù)器),down 是顯式禁用,通常用于:服務(wù)器維護(hù)期間、故障排查時(shí)隔離問(wèn)題節(jié)點(diǎn)。

修改配置文件

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

添加:

重啟nginx服務(wù)

systemctl restart nginx

訪問(wèn)驗(yàn)證

使用瀏覽器訪問(wèn)192.168.10.40

只能訪問(wèn)到web1服務(wù)器

(4)max_conns

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

當(dāng)服務(wù)器的活躍連接數(shù)達(dá)到 max_conns 時(shí),新請(qǐng)求會(huì)被轉(zhuǎn)發(fā)到其他可用服務(wù)器。

默認(rèn)值:0(無(wú)限制)。

修改配置文件

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

添加:

重啟nginx服務(wù)

systemctl restart nginx

(5)least_conn

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

修改配置文件

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

添加:

重啟nginx服務(wù)

systemctl restart nginx

四、Nginx 日志記錄真實(shí)客戶(hù)端 IP 地址

(1)開(kāi)啟日志(web1、web2)

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

修改:

$http_x_forwarded_for:為真實(shí)客戶(hù)端IP

重啟nginx服務(wù)

systemctl restart nginx

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

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

輸入命令后使用瀏覽器訪問(wèn)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;

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

proxy_set_header X-Real-IP $remote_addr;

作用:將客戶(hù)端的真實(shí) IP 地址傳遞給后端服務(wù)器,存儲(chǔ)在自定義頭 X-Real-IP 中。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

作用:追加客戶(hù)端 IP 到 X-Forwarded-For 頭,用于標(biāo)識(shí)請(qǐng)求鏈路上的所有代理 IP。

重啟nginx服務(wù)

systemctl restart nginx

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

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

輸入命令后使用瀏覽器訪問(wèn)192.168.10.40

真實(shí)訪問(wèn)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服務(wù)

systemctl restart nginx

(2)訪問(wèn)驗(yàn)證

使用瀏覽器訪問(wèn)192.168.10.40

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

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

x-cache-status返回“HIT “表示響應(yīng)來(lái)自緩存

觀察 X-Cache-Status 的值:

  • HIT:響應(yīng)來(lái)自緩存
  • MISS:未命中緩存,從后端獲取
  • BYPASS:顯式跳過(guò)緩存(如設(shè)置了 proxy_cache_bypass)
  • EXPIRED:緩存已過(guò)期
  • STALE:后端不可用時(shí)返回舊緩存

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

(3)查看生成緩存文件

tree /usr/local/nginx/proxy_cache/

總結(jié)

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

相關(guān)文章

  • 使用Nginx搭建文件服務(wù)器的全過(guò)程

    使用Nginx搭建文件服務(wù)器的全過(guò)程

    文章介紹了選擇Nginx作為文件服務(wù)器的原因,包括其高性能、輕量級(jí)、高穩(wěn)定性等優(yōu)勢(shì),以及Nginx的基本配置、高級(jí)配置和生產(chǎn)環(huán)境配置,文章還詳細(xì)介紹了如何使用Nginx進(jìn)行HTTPS配置、防盜鏈配置、壓縮傳輸?shù)雀呒?jí)功能,需要的朋友可以參考下
    2026-01-01
  • nginx代理minio的實(shí)現(xiàn)示例

    nginx代理minio的實(shí)現(xiàn)示例

    本文介紹通過(guò)Nginx代理MinIO實(shí)現(xiàn)預(yù)簽名URL的配置方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • 解決Nginx端口沖突的排查方法示例

    解決Nginx端口沖突的排查方法示例

    這篇文章主要介紹了解決Nginx端口沖突的排查方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 快速解決nginx的access.log持續(xù)變大問(wèn)題

    快速解決nginx的access.log持續(xù)變大問(wèn)題

    文章主要講述了nginx的access.log日志文件突然變大的問(wèn)題,提供了幾種解決方案,包括停止nginx并刪除日志文件、覆蓋日志文件為空以及在配置文件中修改設(shè)置以不打印日志
    2025-11-11
  • nginx做代理時(shí)如何修改querystring方法詳解

    nginx做代理時(shí)如何修改querystring方法詳解

    這篇文章主要介紹了nginx做代理時(shí)如何修改querystring的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • nginx安裝并轉(zhuǎn)發(fā)socket服務(wù)實(shí)現(xiàn)方式

    nginx安裝并轉(zhuǎn)發(fā)socket服務(wù)實(shí)現(xiàn)方式

    文章指導(dǎo)如何安裝編譯工具、PCRE和Nginx,并通過(guò)修改配置文件添加stream塊實(shí)現(xiàn)端口轉(zhuǎn)發(fā),將9999/801端口分別映射至9988/1557端口
    2025-07-07
  • 使用Nginx做WebSockets代理教程

    使用Nginx做WebSockets代理教程

    這篇文章主要介紹了使用Nginx做WebSockets代理教程,本文給出了代理配置,和一個(gè)完整的node.js實(shí)現(xiàn)的WebSockets實(shí)例,需要的朋友可以參考下
    2015-01-01
  • nginx禁用ip實(shí)現(xiàn)方法

    nginx禁用ip實(shí)現(xiàn)方法

    Nginx禁特定IP訪問(wèn)的方法包括使用deny指令、組合使用allow和deny指令以及利用HTTP模塊的limit_conn和limit_req指令限制連接數(shù)和請(qǐng)求頻率,這些方法能有效禁止或限制特定IP的訪問(wèn)
    2026-05-05
  • 使用Nginx代理解決跨域問(wèn)題并傳遞請(qǐng)求頭的完整指南

    使用Nginx代理解決跨域問(wèn)題并傳遞請(qǐng)求頭的完整指南

    在現(xiàn)代 Web 開(kāi)發(fā)中,跨域資源共享(CORS)是一個(gè)常見(jiàn)的問(wèn)題,當(dāng)你的前端應(yīng)用嘗試從一個(gè)域名請(qǐng)求另一個(gè)域名的資源時(shí),瀏覽器會(huì)阻止這種請(qǐng)求,除非目標(biāo)服務(wù)器明確允許跨域訪問(wèn),本文將詳細(xì)介紹如何使用 Nginx 作為代理服務(wù)器來(lái)解決跨域問(wèn)題,需要的朋友可以參考下
    2025-01-01
  • Nginx配置ssl實(shí)現(xiàn)https的全過(guò)程記錄

    Nginx配置ssl實(shí)現(xiàn)https的全過(guò)程記錄

    這篇文章主要給大家介紹了關(guān)于Nginx配置ssl實(shí)現(xiàn)https的相關(guān)資料,文章通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

织金县| 韶关市| 安宁市| 商丘市| 黑龙江省| 铁力市| 清苑县| 淳化县| 沙雅县| 旌德县| 鹤峰县| 洛阳市| 阳曲县| 阿拉善左旗| 砀山县| 林西县| 灵石县| 富阳市| 木兰县| 米林县| 剑阁县| 长垣县| 海口市| 巴林右旗| 横山县| 贺州市| 德州市| 新巴尔虎左旗| 应城市| 文安县| 夏河县| 和政县| 高淳县| 兴城市| 方城县| 习水县| 巍山| 绥宁县| 大冶市| 葵青区| 安国市|