简单测试 Nginx + Tomcat负载均衡

实验环境

两台虚拟机:

192.168.137.110
192.168.137.120

Tomcat相关修改

虚拟机中分别安装有tomcat,分别修改webapps/ROOT目录下index.jsp,便于查看实验结果:

<!-- 192.168.137.110 -->
<body>
        <h1>Tomcat One</h1>
  		...
</body>
<!-- 192.168.137.120 -->
<body>
        <h1>Tomcat Two</h1>
  		...
</body>

Nginx配置

在192.168.137.110上安装Nginx,修改配置文件:

http {
	...
	upstream tomcat {
        server 192.168.137.110:8080;
        server 192.168.137.120:8080;
    }
    
    server {
        listen 80;
        location / {
        		#proxy_set_header Host $host;
                proxy_pass         http://tomcat;
        }
    }
    ...
}    

测试

启动tomcat和Nginx。

浏览器直接测试效果:

刷新:

也可以修改nginx.conf,在server中添加:

        add_header backendIP $upstream_addr;
        add_header backendCode $upstream_status;

这样就可以在访问页面的时候查看response header中realserver的ip和返回码:

Nginx 负载均衡策略

轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响。weight默认为1,将请求平均分配给每台服务器,weight可以指定轮询权值,weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。

IP_hash

每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题。当然如果这个节点不可用了,会发到下个节点,而此时没有session同步的话就注销掉了。

最少连接

将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。会考虑weight的值。

url_hash

此方法按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx 的hash软件包 nginx_upstream_hash(1.7.2版本以后集成到了nginx源码,不需要单独安装)。

fair

此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair 模块。

sticky

nginx安装参数参考

./configure \
--prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/tmp/client_body \
--http-proxy-temp-path=/var/lib/nginx/tmp/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi \
--http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi \
--http-scgi-temp-path=/var/lib/nginx/tmp/scgi \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/subsys/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-openssl=../openssl-1.0.2j \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-pcre \
--add-module=../nginx_moudle/goodies-nginx-sticky-module \
--add-module=../nginx_moudle/nginx_upstream_check_module-0.3.0

># make && make install

转载于:https://my.oschina.net/u/588736/blog/776645

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值