nginx强大的web服务器,还是反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。
nginx 的 upstream 支持5种负载均衡方式:
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 4)、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 5)、url_hash(第三方)模拟场景:
本机启动两个web服务(tomcat1和tomcat2),为了同一台机器能够启动两个tomcat,需要修改端口号
我做了两个web服务的war包,部署在里面。
本机ip: 10.1.230.200tomcat1 本机:10.1.230.200 端口:8080tomcat2 本机:10.1.230.200 端口:8081
tomcat2配置修改
然后修改nginx服务的conf配置文件,实现最基本的负载均衡
注意: location里面要配置proxy_pass 指向upstream配置的site名称
这样,你每次去访问nginx的时候,就会由nginx自动跳转到tomcat1或者tomcat2,默认为轮询的方式。
当然还可以通过其他方式来完成负载均衡策略
反向代理:
指令说明:
语法:proxy_pass URL默认值:no 使用字段:location, location中的if字段 这个指令设置被代理服务器的地址和被映射的URI,地址可以使用主机名或IP加端口号的形式,例如: proxy_pass ;这样就可以自动代理到设置的地址上了。