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