nginx是一款很强大的http和反向代理服务器。它的功能非常强大。
并不是一开始就需要负载均衡集群,当网络流量不断增长,单个处理单元无法满足负载请求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。
负载均衡与反向代理区别:负载均衡是反向代理的其中一个功能。反向代理服务器还可以缓存静态资源。当用户有请求时,直接返回反向代理服务器上的资源给用户,如果反向代理服务器上没有资源就转发给后端负载均衡服务器。
反向代理一般配置:
http { upstream fight { 192.168.3.10:80 weight=1 max_fails=2 fail_timeout=10s; 192.168.3.11:80 weight=1 max_fails=2 fail_timeout=10s; ##fight代表负载均衡事物名称,weight代表权值,max_fail代表请求失败次数,fail_timeout代表在经历max_fail错误请求后,超时时间后暂停服务。 } server { listen 80; server_name 192.168.3.9; root /var/www/html; location / { proxy_pass http://fight; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #host代表主机名,以上设置可以显示真实访问ip,以下是各种参数,可有可无 client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 } } }
nginx还支持多组的负载均衡,可以配置多个upstream,来服务于不同的server。
nginx的upstream目前支持多种方式的分配,以下是常用几种。
<1>轮询(默认)
每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能够自动剔除。
<2>weight
指定轮询几率,wight和访问比率成正比,用于后端服务器性能不均的情况下。
<3>ip_hash
每个请求按照访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
nginx反向代理不仅可以为后端多台服务器做负载均衡,还可为后端较慢的服务器提供缓存服务,还可启用高级url策略和管理技术,从而使处于不同web服务器系统的web界面同时处于同一url空间下。
时间: 2024-10-19 04:43:58