windows上使用Nginx+tomcat做负载均衡

Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。
参考:http://blog.csdn.net/cclovett/article/details/26377269

本例使用Nginx在2个Tomcat做负载均衡,并做了资源分离。即静态资源(js,css,图片)给nginx,JSP等请求分发给tomcat处理。
1)Nginx的安装和启动
这里使用的Nginx版本是1.8.0,从http://nginx.org/en/download.html下载Windows版本。
下载的文件很小,只有1.22M,下载完毕将文件解压到nginx-1.8.0。我这里的目录是d:/soft/nginx-1.8.0。

可以直接双击nginx.exe来启动,或进入nginx目录,执行start nginx启动。
使用nginx -s stop来关闭nginx。
启动nginx后,访问http://localhost,出现下面的页面即表示成功。

2)Nginx负载均衡配置
主要是修改nginx.conf文件。
找到#gzip on;一行,在下面增加:

upstream local_tomcat {
    server 127.0.0.1:8081 weight=1;
    server 127.0.0.1:8082 weight=1;
    #ip_hash;
}

我们这里本地测试,tomcat端口分别为8081和8082.weight表示权重,默认为1.表示请求分发的比例。这里为1:1表示2个tomcat均衡的处理请求。
server部分配置如下:

server {
    listen       80;
    server_name  127.0.0.1;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    #禁止访问WEB-INF目录下的文件
    location ~ ^/(WEB-INF)/ {
        deny all;
    }

    #静态资源文件到下面的文件夹去取
    location ~ \.(html|js|css|png|gif)$ {  
        root D:/soft/test/static; 
    }

    #其他的请求,如果jsp,或后台action请求交由tomcat处理
    location / {  
       proxy_pass http://local_tomcat;  
    }
}

listen:表示nginx监听的端口,默认是80.
比例我上面配置了2个tomcat,端口分别为8081和8082.单独访问某个tomcat的系统(比例8081):
http://127.0.0.1:8081/系统名。
上面配置了nginx监听80端口,接收到请求后,静态资源从d:/soft/test/static目录查,动态资源请求分发给2个tomcat处理。
这样访问http://127.0.0.1/系统名时就可以了。

server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
下面的error_page是代表错误的页面,这里我们暂时不用,先不管它。

配置完成后,在命令行执行nginx -t来查看配置时候正确。

如果已经启动了nginx,没必要关闭后再打开。可以执行nginx -s reload来重新加载配置。

3)tomcat配置修改
上面已经说明了2个tomcat的端口是8081和8082.因此需要分别修改2个tomcat的server.xml,更改端口。
改这2个地方:

然后 将相同的打包文件分别复制到2个tomcat的webapp下。我的打包文件如下:

index.jsp中加了标识,方便区分是哪个tomcat的请求。
resources目录下是使用的资源文件。

4)静态资源文件处理
因为上面2)中配置了静态资源到d:/soft/test/static目录查,因此将打包文件中的resources文件夹复制到d:/soft/test/static目录下。

完毕之后启动2个tomcat,然后启动nginx。

刷新一下页面:

由此,可以看到负载均衡已经实现了。

下面测试一下静态资源文件的分离:

也是Ok的。
这里特别说一下,
比如http://127.0.0.1/helloweb/resources/js/jquery-loadmask-0.4/jquery.loadmask.css这个静态资源文件。
在JSP中是helloweb/resources/js/jquery-loadmask-0.4/jquery.loadmask.css,那么nginx配置的静态资源文件查找的目录必须也要匹配上面的路径。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值