nginx的反向代理和负载均衡的区别是什么

吕秀才 发布于 2013/07/22 13:59
阅读 11K+
收藏 12

最近在研究nginx的负载均衡和反向代理,先看下这两个简单的配置吧!

负载均衡


worker_processes 1;
events {
   worker_connections 1024;
}
http{
    upstream lxx {//默认是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 {//默认是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下面的一些设置参数!但从实际的表现结果来看,感觉区别并不是很大,负载均衡已经可以把用户的请求按照相关算法和规则发送到web集群的某台机器,而反向代理也是实现了如此的功能,它们的具体的区别在哪里?求普及!

加载中
0
桔子
桔子

引用来自“桔子”的答案

缓存,反向代理主要是缓存东西,以便减少并发操作

proxy_cache相关指令集用户静态内容缓存

fastcgi_cache相关指令集用户动态内容缓存

吕秀才
吕秀才
感谢
1
喜之郎
喜之郎
负载均衡是做反向代理的目的之一。
0
斯诺登
斯诺登
在我看来是同一个概念
0
桔子
桔子
缓存,反向代理主要是缓存东西,以便减少并发操作
吕秀才
吕秀才
看上面的参数,貌似没有缓存的设置在里面?需要配合proxy_cache使用?
0
斯诺登
斯诺登
proxy_cache,给个范例供参考:
location ~ .*\.html$
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 1m;
proxy_cache_valid any 1m;
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Accept-Encoding "";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_pass http://backend_server;
expires 5d;
}

0
Ken5233
Ken5233
mark一下,最近也是刚接触
0
leh
leh
没太大区别,要说区别就是后端是1台了叫反向代理,有多台了就是负载均衡了,没啥大区别。
返回顶部
顶部