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

Nginx配置文件的使用以及實現(xiàn)負(fù)載均衡的4種常用方式

 更新時間:2025年04月22日 10:21:20   作者:Mxin5  
這篇文章主要介紹了Nginx配置文件的使用以及實現(xiàn)負(fù)載均衡的4種常用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前提:

首先先了解一下正向代理和反向代理的理論知識,再直接解讀nginx配置文件和實現(xiàn)負(fù)載均衡的4種方式。

Nginx是一個強(qiáng)大的開源Web服務(wù)器和反向代理服務(wù)器,它支持正向代理和反向代理功能。下面是對兩者的簡要解釋:

正向代理

正向代理是在客戶端和目標(biāo)服務(wù)器之間充當(dāng)中間人的代理服務(wù)器。當(dāng)客戶端請求訪問目標(biāo)服務(wù)器時,請求先發(fā)送到正向代理服務(wù)器,然后由代理服務(wù)器轉(zhuǎn)發(fā)請求給目標(biāo)服務(wù)器,并將目標(biāo)服務(wù)器的響應(yīng)返回給客戶端。正向代理隱藏了客戶端的真實IP地址,使得目標(biāo)服務(wù)器無法直接識別和追蹤客戶端。

簡而言之:正向代理是客戶端訪問代理服務(wù)器去訪問目標(biāo)服務(wù)器,并且對目標(biāo)服務(wù)器隱藏了客戶端的真實信息(IP等信息)。

正向代理的主要用途包括:

  • 訪問被限制的資源:當(dāng)某些資源受到網(wǎng)絡(luò)限制或訪問限制時,可以使用正向代理繞過這些限制來獲取資源。
  • 提高訪問速度:代理服務(wù)器可以緩存經(jīng)常請求的資源,從而提高客戶端訪問資源的速度。
  • 突破防火墻:正向代理可以幫助繞過企業(yè)或國家防火墻的限制,訪問被封鎖的網(wǎng)站或資源。

反向代理

反向代理是在服務(wù)器端和客戶端之間充當(dāng)中間人的代理服務(wù)器。當(dāng)客戶端發(fā)送請求訪問反向代理服務(wù)器時,代理服務(wù)器會根據(jù)一定的規(guī)則將請求轉(zhuǎn)發(fā)給后端的多個服務(wù)器中的一臺,然后將后端服務(wù)器的響應(yīng)返回給客戶端。反向代理隱藏了真實的服務(wù)端,對于客戶端而言,它們并不知道具體訪問的是哪一臺后端服務(wù)器。

簡而言之:反向代理是指代理服務(wù)器接收客戶端的請求,然后反向代理將客戶端的請求分發(fā)給一個或多個目標(biāo)服務(wù)器,最后將響應(yīng)返回給客戶端,對于客戶端隱藏了真實的服務(wù)端信息。

反向代理的主要用途包括:

  • 負(fù)載均衡:反向代理可以根據(jù)一定的算法將請求均勻地分發(fā)給后端的多臺服務(wù)器,從而實現(xiàn)負(fù)載均衡,提高系統(tǒng)的并發(fā)處理能力和穩(wěn)定性。
  • 緩存靜態(tài)資源:反向代理可以緩存經(jīng)常請求的靜態(tài)資源,減少后端服務(wù)器的負(fù)載,提高網(wǎng)站的訪問速度。
  • 安全性和可靠性:反向代理可以作為防火墻和安全設(shè)備,提供安全認(rèn)證、訪問控制、DDoS攻擊防護(hù)等功能。

總結(jié):

  • 正向代理和反向代理都是利用代理服務(wù)器作為中間人來轉(zhuǎn)發(fā)請求和響應(yīng)。
  • 正向代理是客戶端通過代理服務(wù)器發(fā)送請求,代理服務(wù)器幫助客戶端發(fā)送請求到互聯(lián)網(wǎng)上的目標(biāo)服務(wù)器隱藏客戶端的真實IP地址(目標(biāo)服務(wù)器并不知道是那個真實的客戶端訪問的)。
  • 反向代理是客戶端通過代理服務(wù)器發(fā)送請求,代理服務(wù)器將請求轉(zhuǎn)發(fā)到后端的多個服務(wù)器中的一個。反向代理隱藏真實的服務(wù)端(客戶端并不知道那個后端服務(wù)器響應(yīng)的結(jié)果)。
  • 兩者的區(qū)別在于請求的流向和代理服務(wù)器與目標(biāo)服務(wù)器的關(guān)系,正向代理中代理服務(wù)器與客戶端處于同一側(cè)(客戶端通過代理服務(wù)器獲取特定的資源),反向代理中代理服務(wù)器與目標(biāo)服務(wù)器處于同一側(cè)(服務(wù)端通過代理服務(wù)器處理客戶端的請求)。

Nginx配置文件

nginx 的組成部分

配置文件中有很多#, 開頭的表示注釋內(nèi)容,我們?nèi)サ羲幸?# 開頭的段落,精簡之后的 內(nèi)容如下:

#user  nobody;   是用來指定 Nginx 進(jìn)程運行的用戶和用戶組的配置項。 在 Linux 系統(tǒng)中,各個進(jìn)程需要以某個用戶的身份來運行,以限制權(quán)限并提高安全性
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

nginx 配置文件有三部分組成

第一部分:全局塊

比如上面第一行配置的:

  worker_processes  1;

這是 Nginx 服務(wù)器并發(fā)處理服務(wù)的關(guān)鍵配置,worker_processes 值越大,可以支持的并發(fā)處理量也越多,但是 會受到硬件、軟件等設(shè)備的制約。

第二部分:events塊

比如上面的配置:

events {
    worker_connections  1024;
}

events 塊涉及的指令 主要影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開啟對多 work process 下的網(wǎng)絡(luò)連接進(jìn)行序列化,是否允許同時接收多個網(wǎng)絡(luò)連接,選取哪種事件驅(qū)動模型來處理連接請求,每個 word process 可以同時支持的最大網(wǎng)絡(luò)連接數(shù)等。

上述例子就表示每個 work process 支持的最大連接數(shù)為 1024.

這部分的配置對 Nginx 的性能影響較大,在實際中應(yīng)該靈活配置。

第三部分:http塊

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

需要注意的是:http 塊也可以包括 http全局塊、server 塊。

http全局塊

http全局塊配置的指令包括文件引入、MIME-TYPE 定義、日志自定義、連接超時時間、單鏈接請求數(shù)上限等。

server 塊

這塊和虛擬主機(jī)有密切關(guān)系,虛擬主機(jī)從用戶角度看,和一臺獨立的硬件主機(jī)是完全一樣的,該技術(shù)的產(chǎn)生是為了 節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本。

每個 http 塊可以包括多個 server 塊,而每個 server 塊就相當(dāng)于一個虛擬主機(jī)。

而每個 server 塊也分為全局 server 塊,以及可以同時包含多個 locaton 塊。

Nginx常用的實現(xiàn)負(fù)載均衡的4種方式

Nginx提供了多種方式實現(xiàn)負(fù)載均衡,以下是其中幾種常用的方式:

輪詢(Round Robin)

這是默認(rèn)的負(fù)載均衡算法,Nginx按照請求的順序依次將請求分配給后端的服務(wù)器。每個服務(wù)器按照其權(quán)重來處理請求,然后按順序循環(huán)分配。

這種算法簡單且平均地將負(fù)載分配給后端服務(wù)器,適用于后端服務(wù)器配置相同、處理能力相當(dāng)?shù)膱鼍啊?/p>

http {
    upstream backend {
        server 192.168.1.101:8080;
        server 192.168.1.102:8080;
        server 192.168.1.103:8080;
    }

    server {
        listen 80;
        
        location / {
            proxy_pass http://backend;
        }
    }
}

IP哈希(IP Hash)

Nginx根據(jù)客戶端的IP地址進(jìn)行哈希運算,并根據(jù)計算結(jié)果將請求分配給固定的后端服務(wù)器。

這種算法保證了相同的客戶端IP每次請求都會被分配到相同的服務(wù)器,適用于需要保持會話狀態(tài)的應(yīng)用。

http {
    upstream backend {
        ip_hash;
        server 192.168.1.101:8080;
        server 192.168.1.102:8080;
        server 192.168.1.103:8080;
    }

    server {
        listen 80;
        
        location / {
            proxy_pass http://backend;
        }
    }
}

加權(quán)輪詢(Weighted Round Robin)

Nginx根據(jù)每個后端服務(wù)器的配置權(quán)重將請求分配給服務(wù)器。權(quán)重越高的服務(wù)器,處理的請求就越多。這種方式適用于后端服務(wù)器之間配置不同、處理能力不同的情況下。

http {
    upstream backend {
        server 192.168.1.101:8080 weight=3;
        server 192.168.1.102:8080 weight=2;
        server 192.168.1.103:8080 weight=1;
    }

    server {
        listen 80;
        
        location / {
            proxy_pass http://backend;
        }
    }
}

最少連接(Least Connections)

Nginx會統(tǒng)計每個后端服務(wù)器當(dāng)前的活動連接數(shù),并將請求分配給活動連接數(shù)最少的服務(wù)器,以實現(xiàn)負(fù)載均衡。這種算法適用于后端服務(wù)器配置和處理能力不同、連接持續(xù)時間不均衡的場景。

http {
    upstream backend {
        least_conn;
        server 192.168.1.101:8080;
        server 192.168.1.102:8080;
        server 192.168.1.103:8080;
    }

    server {
        listen 80;
        
        location / {
            proxy_pass http://backend;
        }
    }
}

什么是跨域?

跨域(跨域資源共享(Cross-Origin Resources Sharing ,CORS))是指跨域名:域名,記憶網(wǎng)絡(luò)電腦ip很難記,就給它取了一個名字來記憶,這個名字就要域名。域名最終要被轉(zhuǎn)換為ip地址。跨域是指跨域名的訪問,從一個域名的系統(tǒng)去訪問另一個域名系統(tǒng)www.baidu.com-www.jd.com,以下情況都屬于跨域:

當(dāng)一個請求url的協(xié)議域名、端口號三者之間任意一個與當(dāng)前頁面url不同即為跨域。

負(fù)載均衡

什么是負(fù)載均衡【降低后端某個服務(wù)器的壓力 】

在高并發(fā)的情況下,一臺服務(wù)器的負(fù)載承受不住,我們就需要使用服務(wù)器集群解決高并發(fā),但是又會出現(xiàn)另一個問題,就是客戶端的請求如何分配給多個服務(wù)器,所以在服務(wù)器集群中,需要一個服務(wù)器充當(dāng)一個【負(fù)載均衡器-Nginx】【NameServer-也可以是一個集群】的作用,用戶的所有請求都會都會由負(fù)載均衡器【NameServer】進(jìn)行接收,調(diào)度者根據(jù)每臺服務(wù)器的負(fù)載情況通過負(fù)載均衡算法將請求分配給某一臺后端服務(wù)器進(jìn)行處理。

負(fù)載均衡算法比如輪詢、權(quán)重、隨機(jī)、區(qū)域等等

  • RoundRobbonRule:簡單輪詢,ribbon默認(rèn)規(guī)則
  • AvailabilityFilteringRule忽略短路狀態(tài)和并發(fā)過高的服務(wù)器
  • WeightedResponseTimeRule:根據(jù)服務(wù)器響應(yīng)時間作為權(quán)重,響應(yīng)時間越長權(quán)重越小
  • ZoneAvoidanceRule:根據(jù)區(qū)域選擇可用的服務(wù)器
  • BestAvailableRule忽略短路的服務(wù)器,選擇并發(fā)較低的服務(wù)器
  • RandomRule隨機(jī)選擇一個可用服務(wù)器
  • Retry重試機(jī)制的選擇邏輯【不建議

動靜分離

為了加快網(wǎng)站的解析速度,可以把動態(tài)頁面和靜態(tài)頁面由不同的服務(wù)器來解析,加快解析速 度。降低原來單個服務(wù)器的壓力。各司其職

Nginx常用命令

a. 使用nginx操作命令前提

使用nginx操作命令前提:必須進(jìn)入到nginx的自動生成目錄的下/sbin文件夾下。

就是 Super User 的意思,是 Superuser Binaries (超級用戶的二進(jìn)制文件) 的縮寫,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序。

查看 nginx 的版本號

./nginx -v

啟動 nginx

./nginx

關(guān)閉nginx

./nginx -s stop

重新加載 nginx

在目錄:/usr/local/nginx/sbin 下執(zhí)行命令,不需要重啟服務(wù)器,自動編譯。

./nginx -s reload

總結(jié)

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

相關(guān)文章

  • nginx獲取客戶端真實ip的常用方法

    nginx獲取客戶端真實ip的常用方法

    這篇文章給大家介紹了在nginx中獲取客戶端真實IP的兩種常用方法,文中有詳細(xì)的代碼供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2023-09-09
  • Nginx中泛域名配置的實例教程

    Nginx中泛域名配置的實例教程

    泛域名就是我們平常指的二級和三級域名等,這里我們來總結(jié)一下Nginx中泛域名解析配置的實例教程,包括正則匹配等細(xì)節(jié)的講解,需要的朋友可以參考下
    2016-05-05
  • 分享Nginx下10個安全問題提示

    分享Nginx下10個安全問題提示

    Nginx是當(dāng)今最流行的Web服務(wù)器之一。它為世界上7%的web流量提供服務(wù)而且正在以驚人的速度增長。它是個讓人驚奇的服務(wù)器,我愿意部署它
    2014-04-04
  • Nginx中多種負(fù)載均衡策略配置的實戰(zhàn)指南

    Nginx中多種負(fù)載均衡策略配置的實戰(zhàn)指南

    在當(dāng)今高并發(fā)、大流量的互聯(lián)網(wǎng)應(yīng)用中,單臺服務(wù)器往往難以承受巨大的訪問壓力,負(fù)載均衡作為解決這一問題的關(guān)鍵技術(shù),能夠?qū)⒄埱蠓职l(fā)到多臺服務(wù)器上,本文將深入探討Nginx負(fù)載均衡的各種策略和配置方法,大家可以根據(jù)需要進(jìn)行選擇
    2025-10-10
  • Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法

    Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法

    這篇文章主要給大家介紹了關(guān)于Nginx基礎(chǔ)學(xué)習(xí)之realip模塊使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • nginx配置https://localhost/index報404

    nginx配置https://localhost/index報404

    本文主要介紹了Nginx配置導(dǎo)致頁面刷新時報404錯誤的問題,主要因為靜態(tài)文件路徑配置錯誤、前端路由問題和反向代理配置錯誤這幾種錯誤,下面就來介紹一下解決方法
    2024-12-12
  • Nginx配置-日志格式配置方式

    Nginx配置-日志格式配置方式

    這篇文章主要介紹了Nginx配置-日志格式配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請求到外網(wǎng)的實現(xiàn)示例

    配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請求到外網(wǎng)的實現(xiàn)示例

    本文主要介紹了配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請求到外網(wǎng)的實現(xiàn)示例,通過nginx配置代理實現(xiàn)內(nèi)網(wǎng)對外網(wǎng)接口數(shù)據(jù)的獲取,涉及nginx安裝、配置SSL、日志設(shè)置和錯誤排查,感興趣的可以了解一下
    2024-10-10
  • 深入理解nginx如何實現(xiàn)高性能和可擴(kuò)展性

    深入理解nginx如何實現(xiàn)高性能和可擴(kuò)展性

    這篇文章主要介紹了深入理解nginx如何實現(xiàn)高性能和可擴(kuò)展性,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • nginx經(jīng)過多層代理后獲取真實來源ip過程詳解

    nginx經(jīng)過多層代理后獲取真實來源ip過程詳解

    這篇文章主要介紹了nginx經(jīng)過多層代理后獲取真實來源ip過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09

最新評論

远安县| 五河县| 綦江县| 高碑店市| 阿城市| 洛隆县| 互助| 安图县| 巴塘县| 隆化县| 广昌县| 噶尔县| 普兰县| 长治县| 德州市| 封开县| 新沂市| 类乌齐县| 安徽省| 泉州市| 那曲县| 峨边| 康平县| 乳山市| 昌宁县| 临夏市| 定襄县| 大方县| 新绛县| 桑日县| 信宜市| 怀宁县| 麻江县| 西贡区| 商南县| 三原县| 黔东| 安福县| 景谷| 福建省| 九江县|