Nginx+Tomcat实现负载均衡
一、搭建Tomcat服务
下载安装JDK和Tomcat就不说了,太简单了。由于是win7单机环境测试,启动多个Tomcat服务可以通过在server.xml配置文件中修改端口实现。准备两个Tomcat,比如使用两个不同版本的Tomcat(相同版本可以更改下文件名或者放到不同目录下)
1、创建项目
在webapps目录下,创建一个文件夹,例如test,并在该文件夹下面创建文件index.html,编辑内容,例如
将test拷贝到第二个tomcat的webapps目录下并将内容做相应修改
2、配置server.xml
进入conf目录配置server.xml。首先修改端口,保持第一个tomcat端口不变,将第二个tomcat的相关端口在原基础上加1。然后在host节点中分别添加以下内容
docBase为项目的绝对路径
3、启动tomcat
分别进入tomcat的bin目录,双击startup.bat启动tomcat服务,如果显示端口占用,可能是因为设置了环境变量,到系统环境变量中将CATALINA_HOME删除即可。在浏览器测试下
没问题,进入下一步。
二、Nginx配置
1、下载安装
这里下载了最新版本
将其解压即可
2、启动
通过CMD命令行进入Nginx目录,启动Nginx
闪一下就没了,可以通过以下命令查看是否启动成功
有以下回显表明成功
或者可以在浏览器输入127.0.0.1,出现Nginx欢迎页面表示启动成功
nginx命令参数可以通过-h选项查看
常用命令有
停止nginx服务:
nginx -s quit
nginx -s stop
stop与quit参数的区别在于stop是快速停止nginx,可能并不保存相关信息,quit是完整有序的停止nginx,并保存相关信息。
重新加载配置文件:
nginx -s reload
3、配置nginx
进入conf目录,修改nginx.conf。
在http节点下添加以下内容,upstream节点设置负载均衡的服务器列表,将之前启动的两台tomcat服务器配置进去
默认是轮询负载策略,nginx提供四种负载策略
- 轮询:(默认,weight 指定权重)
- ip_hash: 根据请求IP地址hash结果分配后台服务
- fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配
- url_hash:按访问url的hash结果来分配请求
虚拟主机配置,修改server节点
简单的配置结束,测试下,在浏览器输入127.0.0.1:80/test
不停刷新这两个页面将来回切换,因为权重设置都为1。权重设置越大,被请求的几率越大。
三、Nginx配置文件详解
nginx的配置是nginx的核心,以下内容为网络上找的配置介绍,详细见官网http://wiki.nginx.org/Configuration