提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
客户端发送请求给反向代理服务器,但是代理服务器上没有客户端需要的资源,代理服务器会判断转发到原始服务器获得资源,并把资源返回给客户端;在整个过程,客户端不知道自己访问的是一个代理服务器,而是一个原始服务器
总结:正向代理代理的是客户端;反向代理代理的是服务器
在nginx.conf中修改
upstream tomcatserver1 { server 192.168.72.49:8081; } upstream tomcatserver2 { server 192.168.72.49:8082; } server { listen 80; server_name 8081.max.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } } server { listen 80; server_name 8082.max.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver2; index index.html index.htm; } }
server_name 配置的域名
server_name 配置的是真实地址
1)浏览器访问8081.max.com,通过本地host文件域名解析,找到192.168.72.49服务器(安装nginx)
2)nginx反向代理接受客户机请求,找到server_name为8081.max.com的server节点,根据proxy_pass对应的http路径,将请求转发到upstream tomcatserver1上,即端口号为8081的tomcat服务器。
3)请求8082.max.com,tomcat2接收返回首页
企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案就是使用nginx实现负载均衡。
1、转发功能
按照一定的算法【权重、轮询、iphash】,将客户端的请求转发到不同服务器上,减轻单个服务器的压力,提升系统的并发量
2、故障移除
通过心跳监测的方式,判断服务器是否正常运作,如果服务器宕机,自动将请求转发到其他服务器
3、恢复添加
如果检测到发生故障的服务器恢复工作,自动将他添加到处理请求的队伍中去
Nginx的负载分发策略
Nginx 的 upstream目前支持的分配算法:
1)、轮询 ——1:1 轮流处理请求(默认)
2)、权重 ——you can you up
3)、ip_哈希算法
Nginx负载均衡器配置:
在默认安装的Nginx配置文件Nginx.conf中。
我们使用 nginx 中的 upstream模块 来实现nginx将跨越单机的限制,完成网络数据的接收、处理和转发。我们主要使用提到的转发功能进行调度分发。
upstream myServer { server 192.168.72.49:9090 down; server 192.168.72.49:8080 weight=2; server 192.168.72.49:6060; server 192.168.72.49:7070 backup; //什么都不加,默认轮询 //down 表示单前的server临时不參与负载. //weight 默觉得1.weight越大,负载的权重就越大 //backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻 }
源地址哈希法
upstream myServer { ip_hash; server **.***.***.***:8080; server **.***.***.***:9090; }