亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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地址??缬蚴侵缚缬蛎脑L問,從一個域名的系統(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請求頭丟失的問題解決

    Nginx請求頭丟失的問題解決

    本文主要介紹了在使用Nginx進(jìn)行請求轉(zhuǎn)發(fā)時,遇到請求頭參數(shù)丟失的問題,導(dǎo)致的原因可能是api_key_id和api_key_value這2個參數(shù)傳遞過程中丟失或則根本沒傳遞,下面就來具體介紹一下
    2024-12-12
  • Nginx Proxy緩存的具體實現(xiàn)

    Nginx Proxy緩存的具體實現(xiàn)

    本文主要介紹了Nginx Proxy緩存的具體實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 簡單快速搭建Nginx文件服務(wù)器

    簡單快速搭建Nginx文件服務(wù)器

    這篇文章主要為大家介紹了簡單快速搭建Nginx文件服務(wù)器方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Nginx 應(yīng)用范圍和使用詳解

    Nginx 應(yīng)用范圍和使用詳解

    這篇文章主要介紹了Nginx 應(yīng)用范圍和使用詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Nginx訪問控制與參數(shù)調(diào)優(yōu)的方法

    Nginx訪問控制與參數(shù)調(diào)優(yōu)的方法

    這篇文章主要介紹了Nginx訪問控制與參數(shù)調(diào)優(yōu)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 詳解Nginx 工作原理

    詳解Nginx 工作原理

    這篇文章主要介紹了Nginx 工作原理,幫助大家更好的理解和學(xué)習(xí)nginx,感興趣的朋友可以了解下
    2020-10-10
  • nginx代理80端口不生效的解決方案

    nginx代理80端口不生效的解決方案

    如果你的 Nginx 代理配置了端口 80,并且訪問時仍然顯示默認(rèn)的 Nginx 頁面,可能有許多原因?qū)е?本文給大家介紹了產(chǎn)生的原因和解決方案,具有一定的參考價值,需要的朋友可以參考下
    2024-02-02
  • 利用nginx與ffmpeg搭建流媒體服務(wù)器過程詳解

    利用nginx與ffmpeg搭建流媒體服務(wù)器過程詳解

    這篇文章主要給大家介紹了利用nginx與ffmpeg搭建流媒體服務(wù)器的全過程,文中介紹的很詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • 使用Nginx解決前端跨域問題

    使用Nginx解決前端跨域問題

    這篇文章主要為大家詳細(xì)介紹了使用Nginx解決前端跨域問題的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Nginx配置檢測服務(wù)狀態(tài)的實現(xiàn)方法

    Nginx配置檢測服務(wù)狀態(tài)的實現(xiàn)方法

    這篇文章主要介紹了Nginx配置檢測服務(wù)狀態(tài)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論