正向代理是一个位于客户端【用户A】和原始服务器【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),而后代理服务器Z向服务器B转交请求并将得到的内容返回给客户端。即代理服务器替代访问方【用户A】去访问目标服务器【服务器B】。客户端必需要进行一些特别的设置才能使用正向代理。固然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。nginx
用单机tomcat搭建的网站,在比较理想的状态下可以承受的并发访问量在150到200左右。按照并发访问量占总用户数量的5%到10%这样计算,单点tomcat网站的用户人数在1500到4000左右。对于一个为全国范围提供服务的网站显然是不够用的,为了解决这个问题引入了负载均衡方法。负载均衡就是一个web服务器解决不了的问题能够经过多个web服务器来平均分担压力来解决,并发过来的请求被平均分配到多个后台web服务器来处理,这样压力就被分解开来。web
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,而且客户端不须要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将得到的内容返回给客户端。后端
若是启动不成功,说明80端口被占用,可经过 netstat -ano|findstr ":80" 查看浏览器
可经过修改 nginx-1.12.2\conf\nginx.conf 里的默认的端口配置来启动tomcat
worker_processes:工做进程个数,可配置多个服务器
worker_connections:单个进程最大链接数并发
server:每个server至关于一个代理服务器负载均衡
lister:监听端口,默认80网站
server_name:当前服务的域名,能够有多个,用空格分隔(咱们是本地因此是localhost)spa
location:表示匹配的路径,这时配置了/表示全部请求都被匹配到这里
index:当没有指定主页时,默认会选择这个指定的文件,可多个,空格分隔
proxy_pass:请求转向自定义的服务器列表
upstream name{ }:服务器集群名称
启动nginx: start nginx 关闭nginx: nginx -s stop 从新加载配置文件: nginx -s reload //能够在不关闭nginx的状况下更新配置文件.
使用两个tomcat服务器演示(已配置好且都能正常使用),因为两个tomcat版本不同,能够直接展示,这里就先不添加项目了
配置 nginx-1.12.2\conf\nginx.conf
访问同一网址 http://localhost:80 可发现页面在两个tomcat中来回切换
也可设置权重
注意,每次修改完配置须要重启一下nginx。
若是集群中的某个服务器挂了,此时nginx分发请求到该服务器时,若是没有配置超时策略,会出现一段至少1分钟的等待,超过了客户端的响应时间,会形成客户端超时状况,使Nginx报499。
主要介绍以下几个参数:
在nginx.conf中的配置:
设置客户端响应时间=proxy_connect_timeout + fail_timeout*max_fails,如个人客户端响应时间设置为3秒,那么超时策略配置以下