nginx負(fù)載均衡和反向代理的區(qū)別

小晨
313
2021-07-14 18:29:53
欄目: 云計(jì)算

nginx負(fù)載均衡和反向代理的區(qū)別有:1、實(shí)現(xiàn)負(fù)載均衡必須需要反向代理;2、反向代理主要是緩存東西,而負(fù)載均衡則是減少高并發(fā)情況;3、負(fù)載均衡是做反向代理的目的之一。

nginx負(fù)載均衡和反向代理的區(qū)別

具體內(nèi)容如下:

負(fù)載均衡需要通過反向代理來實(shí)現(xiàn)。

反向代理就是指nginx作為前端服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)到后端,再將后端服務(wù)器的結(jié)果,返回給客戶端。

它在中間做了一個(gè)代理服務(wù)器的角色。

負(fù)載均衡對(duì)反向代理增加了一些策略,因?yàn)楹蠖耸嵌嗯_(tái)服務(wù)器,nginx會(huì)根據(jù)設(shè)定的策略將請(qǐng)求轉(zhuǎn)發(fā)給一個(gè)相對(duì)空閑的服務(wù)器,對(duì)負(fù)載進(jìn)行分流,減輕服務(wù)器壓力。

示例

負(fù)載均衡

worker_processes 1;

events {

   worker_connections 1024;

}

http{

    upstream lxx {//默認(rèn)是80端口

        server 192.168.0.62 weight=2;

        server 192.168.0.161 weight=3;

    }

    server {

        listen 80;

        location / {

            proxy_pass http://lxx;

        }

    }

}

反向代理

worker_processes 1;

events {

   worker_connections 1024;

}

http{

    upstream lxx {//默認(rèn)是80端口

        server 192.168.0.62 weight=2;

        server 192.168.0.161 weight=3;

    }

    server {

        listen 80;

        location / {

            proxy_pass http://lxx;

             

 

            #Proxy Settings

            proxy_redirect     off;

            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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

            proxy_max_temp_file_size 0;

            proxy_connect_timeout      90;

            proxy_send_timeout         90;

            proxy_read_timeout         90;

            proxy_buffer_size          4k;

            proxy_buffers              4 32k;

            proxy_busy_buffers_size    64k;

            proxy_temp_file_write_size 64k;

        }

    }

}

從配置上來看,它只是多了Proxy Settings下面的一些設(shè)置參數(shù)!但從實(shí)際的表現(xiàn)結(jié)果來看,感覺區(qū)別并不是很大,負(fù)載均衡已經(jīng)可以把用戶的請(qǐng)求按照相關(guān)算法和規(guī)則發(fā)送到web集群的某臺(tái)機(jī)器,而反向代理也是實(shí)現(xiàn)了如此的功能,它們的具體的區(qū)別在哪里?

答:負(fù)載均衡是做反向代理的目的之一。

緩存,反向代理主要是緩存東西,以便減少并發(fā)操作。

做了反向代理才能實(shí)現(xiàn)負(fù)載均衡。負(fù)載均衡是做反向代理的目的之一。

如果沒有反向代理,壓力直接放到一個(gè)單一的http server上。而有了反向代理,典型情況下,一個(gè)ngnix做反向代理,后面有若干個(gè)http Server。所有的流量想到ngnix,這個(gè)東西根據(jù)配置的策略,或者輪轉(zhuǎn),或者隨機(jī)或者壓力分流,把流量導(dǎo)向給后面的Http server。從而達(dá)到負(fù)載均衡。

反向代理就是后端服務(wù)不直接對(duì)外暴露,請(qǐng)求首先發(fā)送到nginx,然后nginx將請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器,比如tomcat等。如果后端服務(wù)只有一臺(tái)服務(wù)器,nginx在這里只有一個(gè)作用就是起到了代理后端服務(wù)接收請(qǐng)求的作用,稱之為反向代理。

可是在現(xiàn)實(shí)的應(yīng)用場(chǎng)景中,一臺(tái)后端服務(wù)器出現(xiàn)單點(diǎn)故障的概率很大或者單臺(tái)機(jī)器的吞吐量有限,無法承擔(dān)過多請(qǐng)求。這時(shí)候就需要在nginx后端配置多臺(tái)服務(wù)器,利用nginx內(nèi)置的規(guī)則講請(qǐng)求轉(zhuǎn)發(fā)到后端不同的機(jī)器上。這時(shí)候就起到了負(fù)載均衡的作用。

0