Mac 上 Tomcat 集群配置
想实现的效果是在本地部署两个 Tomcat 应用,通过一个域名均匀地访问它们。集群方案:Tomcat + Nginx , 自然配置就分为两部分:Tomcat 与 Nginx 。
修改系统 host
- 打开 hosts 文件,执行命令
sudo vim /etc/hosts - 追加内容
1
2# tomcat test
127.0.0.1 mmall.yohlj.com - 保存文件。
Tomcat 配置(单机部署多应用)
下载并解压安装多个 Tomcat , 以 2 个为例,它们的安装路径分别为
/Users/enoch/Develop/apache-tomcat-9.0.8-1,/Users/enoch/Develop/apache-tomcat-9.0.8-2修改 /etc/profile 配置文件。执行命令
sudo vim /etc/profile, 追加如下信息:1
2
3
4
5
6export CATALINA_1_BASE=/Users/enoch/Develop/apache-tomcat-9.0.8-1
export CATALINA_1_HOME=/Users/enoch/Develop/apache-tomcat-9.0.8-1
export TOMCAT_1_HOME=/Users/enoch/Develop/apache-tomcat-9.0.8-1
export CATALINA_2_BASE=/Users/enoch/Develop/apache-tomcat-9.0.8-2
export CATALINA_2_HOME=/Users/enoch/Develop/apache-tomcat-9.0.8-2
export TOMCAT_2_HOME=/Users/enoch/Develop/apache-tomcat-9.0.8-2执行命令
sudo source /etc/profile使配置立即生效。修改 catalina.sh . 第 1 个 tomcat 保持不变,进入第 2 个 tomcat 目录 bin 下,打开 catalina.sh , 找到
# OS specific support. $var _must_ be set to either true or false.,在这行下面追加如下配置内容:1
2export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME修改 server.xml . 打开第 2 个 tomcat 目录 conf/server.xml , 修改 3 个端口信息:
- Server port=”8005” 节点端口号修改: 8005 -> 9005
- Connector port=”8080” 节点端口号修改: 8080 -> 9080
- Connector port=”8009” protocol=… 节点端口号修改: 8009 -> 9009
分别进入两个 tomcat 目录 bin 下,启动 tomcat ,查看启动日志。
TIPS: 2 个以上 tomcat 也同理配置。同时启动多个 tomcat ,为了使首页加以区别,可以修改 tomcat logo,文件位置:${TOMCAT_HOME}/webapps/ROOT/tomcat.png
Nginx 配置
使用 brew 安装
执行命令 brew install nginx ,安装完成的软件路径为 /usr/local/Cellar/nginx ,启动程序路径为 /usr/local/Cellar/nginx/1.12.1/bin/nginx ,配置文件路径为 /usr/local/etc/nginx/nginx.conf
从官网下载安装包自行安装
使用 brew 安装,启动程序路径与配置文件路径不在统一父层级下,这样多少会有些麻烦,于是采用下载安装包自行安装的方法。
从官网下载安装包解压。
进入程序目录,执行
./configure第 2 步完成后,执行
make第 3 步完成后,执行
sudo make installnginx 安装完成。程序路径为
/usr/local/nginx
TIPS: 上述操作步骤是在本机已存在 nginx 所依赖的组件进行的,如果一开始安装可能会报依赖组件不存在,可以使用 brew 安装好 nginx , 同时会安装好 nginx 依赖的组件,再单独卸载 nginx 。编辑在
${nginx}/conf/nginx.conf配置文件,在 http 节点下增加include servers/*.conf。servers 为创建新的目录,用来存放配置信息,这样做是为了把域名的配置文件分开,方便后期管理。在 servers 目录下创建配置文件,并追加如下内容:
1 | |
修改完成后启动 nginx ,在浏览器访问 mmall.yohlj.com , 狂刷新,发现 logo 的变化。
Nginx 负载均衡常用策略
轮询(默认)
权重
- 优点:考虑了每台服务器处理能力不同。
- 示例配置:
1
2
3
4
5upstream mmall.yohlj.com{
# default weight = 1
server mmall.yohlj.com:8080 weight=1;
server mmall.yohlj.com:9080 weight=1;
}
ip hash
- 优点:能实现用一个用户访问同一个服务器
- 缺点:根据 ip hash 不一定平均
- 示例配置:
1
2
3
4
5upstream mmall.yohlj.com{
ip_hash;
server mmall.yohlj.com:8080;
server mmall.yohlj.com:9080;
}
url hash(第三方)
- 优点:能实现同一个服务访问同一个服务器
- 缺点:根据 url hash 分配请求会不均匀,请求频繁的 url 会请求到同一服务器上
- 示例配置:
1
2
3
4
5upstream mmall.yohlj.com{
server mmall.yohlj.com:8080;
server mmall.yohlj.com:9080;
hash $request_uri;
}
fair(第三方)
- 特点:按后端服务的响应时间来分配请求,响应时间短的优先分配
- 示例配置:
1
2
3
4
5upstream mmall.yohlj.com{
server mmall.yohlj.com:8080;
server mmall.yohlj.com:9080;
fair;
}
负载均衡参数讲解扩展知识点
1 | |