Nginx是一个高性能的HTTP服务器和反向代理服务器。
最常用的两个功能是反向代理和负载均衡。
<强> 强>
反向代理是正向代理的反面。
普通的代理服务器是需要用户主动去设置的,用户在自己的电脑上设置并连接代理服务器,
从而可以隐藏自己的IP,使得应用服务器不知道客户端的IP地址。
而反向代理是作为应用服务器的代理,安装在服务器上。客户端实际上访问的反向代理服务器,
反向代理服务器再去访问实际的应用服务器,然后将获取到的响应传送给客户端。
使用Nginx配置反向代理非常简单,基础配置如下:
上游网络{ 服务器127.0.0.1:8081; } 服务器{ 听80; server_name web.coolcat.com; 位置/{ proxy_set_header主机http_host美元; proxy_set_header X-Forwarded-Host http_host美元; proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元; proxy_set_header X-Real-IP remote_addr美元; client_max_body_size 5米; proxy_pass http://web; } }
上面的配置文件中设置了一个域名<代码> web.coolcat.com 代码>,
对这个域名的所有请求都会转发到http://web <代码>
通过配置上游<代码> 代码,我们可以发现,实际上的流量都被转发到了
<代码> 127.0.0.1:8081 代码>上了。
如此一来,就实现了反向代理。
负载均衡和反向代理是分不开的,负载均衡通常都是基于反向代理做的。
所谓的负载均衡,指的是将多个请求转发到不同的后端服务器上。
上游网络{ 服务器127.0.0.1:8081; }
在上面的反向代理配置中,只设置了一个后端服务器地址,
如果再添加几个,就实现了最简单的负载均衡了。
轮询策略按顺序分配请求。
上游网络{ 服务器192.168.1.1:8081; 服务器192.168.1.2:8081; }
加权策略按比例分配请求。
上游网络{ 服务器192.168.1.1:8081重量=4; 服务器192.168.1.2:8081重量=6; }
上面的两个服务器的访问概率就是四六开。
最少连接将请求分配给当前连接数最少的服务器。
上游网络{ least_conn; 服务器192.168.1.1:8081; 服务器192.168.1.2:8081; }
来自同一个IP的连接都会分配给同一个服务器,通常用于<代码>会话保持代码>。
上游网络{ ip_hash; 服务器192.168.1.1:8081; 服务器192.168.1.2:8081; }
使用散列自定义要计算的关键。示例中使用请求地址。
可以选择<代码> 代码>一致参数可以指定使用一致性哈希算法。
上游网络{ 哈希request_uri美元; # # $ request_uri一致; 服务器192.168.1.1:8081; 服务器192.168.1.2:8081; }
使用nginx作为HTTP负载均衡器
模块ngx_http_upstream_module
Nginx是很常用的代理服务器,它的功能非常强大,性能也很好。
更多的资料请参考官方文档。
作为版本v0.14.0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。