反向代理是指以代理服务器(nginx)来接受Internet上的链接请求,而后将请求转发给内部网络上的服务器;并将服务器上获得的结果返回给Internet上请求链接的客户端,此时的代理服务器对外就表现为一个服务器。html
一般的代理服务器,只用于代理内部网络对Internet的链接请求,客户机必须指定代理服务器,并将原本要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器可以代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。nginx
nginx服务器地址:***.13.102.164:80算法
tomact8.5地址:***.13.102.164:8080浏览器
tomact8.0地址:***.13.102.164:8081tomcat
服务器启动nginx,浏览器进入80端口,能够看到nginx的主界面:服务器
而后用nginx服务器代理tomcat,网络
在nginx.conf作以下配置:session
1.在配置文件中加入一个upstream,upstream能够认为是对新增server的管理,咱们能够在upstream中增长server并作一些负载均衡的配置。负载均衡
2.在location中增长一个proxy_pass,顾名思义它就是代理转发,经过location路由规则进入的服务会转发到proxy_pass配置的服务。测试
测试一下,在浏览器输入80端口的nginx地址:
能够看到他再也不进入nginx主页,而进入它代理的tomcat8.5服务器。
负载均衡它是经过分发多个客户端的请求,到多个服务器的方式来缓解服务器端的压力。
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大。