nginx实现tomcat负载均衡
配置环境:
最少两台tomcat服务器和一台nginx服务器
先来配置tomcat服务器1,在安装了tomcat服务的基础上
1.首先在根目录下建立一个web目录,并在里边建立一个webapp目录,用于存放网站文件。
mkdir -pv /web/webapp
2.在webapp目录下建立一个index.jsp的测试页面
vim /web/webapp/index.jsp
添加内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test page</title>
</head>
<body>
<%out.println("Welcome come to test site,http://wwww.test1.com");%>
</body>
</html>
3.修改tomcat的server.xml文件
定义一个虚拟主机,并将网页文件路径指向已经建立的/web/webapp,在host段增加context段
cd /usr/local/tomcat8/conf/
cp server.xml server.xml.bak
vim server.xml
150行添加内容:
<Context docBass="/web/webapp" path="" reloadable="flase">
</Context>
4.重启服务
/usr/local/tomcat8/bin/shutdown.sh
/usr/local/tomcat8/bin/startup.sh
5.进入网页进行测试
IP地址后跟端口号:8080
6.查看文件日志
ls /usr/local/tomcat/logs/
tomcat服务器2,同1配置一样,只有在主配置文件中的网页不同
===========================================================
接下来在安装了nginx服务的基础上配置nginx服务器
1.修改配置文件
vim /usr/local/nginx/conf/nginx.conf
添加内容:
在keepalive timeout 65下
定义一个资源池:
upstream tomcat_server {
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;
}
weight表示权重,能力越大,权重越大
**负载均衡调度状态:
down 表示当前server不参与负载
backup 预留的备用机器,压力小
max_fails 允许请求失败的次数
fail_timeout 请求失败超时时间,在经历max_fails后,暂停服务
在一个location下
location ~\.jsp$ {
proxy_pass http://tomcat_server;
proxy_set_header Host $http_host;
}
2.创建一个软连接
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
3.起服务
killall -HUP nginx
注:如果后端服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误。