反向代理
1.反向代理概述(参考:https://www.cnblogs.com/anruy/p/4989161.html)
反向代理是指以代理服务器(Nginx)来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将服务器上得到的结果返回给Internet上请求连接的客户端,此时的代理服务器对外就表现为一个服务器。
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。
2.反向代理例子
Nginx服务器地址:***.13.102.164:80
tomact8.5地址:***.13.102.164:8080
tomact8.0地址:***.13.102.164:8081
服务器启动Nginx,浏览器进入80端口,可以看到Nginx的主界面:
然后用Nginx服务器代理tomcat,
在Nginx.conf做如下配置:
1.在配置文件中加入一个upstream,upstream可以认为是对新增server的管理,我们可以在upstream中增加server并做一些负载均衡的配置。
2.在location中增加一个proxy_pass,顾名思义它就是代理转发,通过location路由规则进入的服务会转发到proxy_pass配置的服务。
测试一下,在浏览器输入80端口的Nginx地址:
可以看到他不再进入Nginx主页,而进入它代理的tomcat8.5服务器。
3.简单实现负载均衡
负载均衡它是通过分发多个客户端的请求,到多个服务器的方式来缓解服务器端的压力。
upstream
upstream中可以配置多个代理服务器,并设置分发到各服务器的策略,默认的策略是轮询,并且如果其中有一个down掉,会自动将它剔除。
常用的负载均衡策略有4种:配置权重(weight),访问ip(ip_hash),fair.
1)配置权重就是设置每个服务器的轮询几率,例:
upstream tomcatserver1 { server 106.13.102.164:8080 weight=1; server 106.13.102.164:8081 weight=5; }
这样客户端访问到8081端口的比例比8080端口的比例大5倍。
2)根据访问ip的hash算法结果来分配,这样保证每个ip访问到的都是固定server(这样也不会存在session共享问题),例:
upstream tomcatserver1 { ip_hash; server 106.13.102.164:8080; server 106.13.102.164:8081 ; }
3)fair(按照服务器的相应时间)
upstream tomcatserver1 { fair; server 106.13.102.164:8080; server 106.13.102.164:8081 ; }
可以用权重方案测试一下,通过配置文件重启Nginx,不停刷新浏览器,可以看到进入8081端口的几率比8080大。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。