最近在看nginx时候发现有配置文件里面有两个参数upstream(负载均衡)和proxy(反向代理)。不是很明白是什么意思,于是就百度了下,网上的说法不是太明白,但是根据网友的回答 下面给出我的理解内容:
反向代理
代理就是我们不直接去做一件事而是让另外一个人代替我们去做一件事。在互联网中,我们如果是内网用户,使用一台代理服务器去访问外网就是所谓的正向代理;而于此相反,一台服务器接受来自外网的代理去访问内网的服务器就是所谓的反向代理。
负载均衡
负载均衡有是什么意思?就说有多台服务器,当用户来访问时候,有的服务器处理请求多,有的处理的少。就会导致有可能处理多服务器宕机,而有的还在空闲,为了解决这个问题我们就在这些服务器之前在加一台服务器接受请求后,使用一定算法将请求平均分配到各个服务器上面。如果在深入点,会将公共的静态内容放在前面的代理机器上面,将需要后端处理的内容按照功能分类到不同服务器上。因此反向代理也可以说是一种负载均衡。而负载均衡前面处理负载均衡算法的服务器也可以看成代理服务器。
那么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; #(反向代理设置)
#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;
}
}
}