tomcat负载均衡-nginx
目录
5.1eclipse创建一个web项目Test,打成war包,上传到tomcat1
5.2将Test项目index修该成如下,上传到tomcat2
1.软件介绍
负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。可以结合Nginxs与Tomcat实现。如下图所示。
Nginx:是一款性能优异的反向代理服务器。
Tomcat服务器:Sun公司在推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用java语言编写,所以tomcat的运行需要java的支持,所以要先安装JDK,才能运行。
2台linux服务器,分别装上tomcat,这里我们用虚拟机创建两台linux服务器。
1台ngnix服务器,我们装在其中一台linux服务器上。
2.对应的地址
tomcat1地址: 192.168.0.143:8080
tomcat2地址:192.168.0.157:8080
nginx地址: 192.168.0.157:80
tomcat安装教程:https://blog.csdn.net/qq_42035966/article/details/82082698
java安装教程:https://blog.csdn.net/qq_42035966/article/details/82083061
3.安装ngnix
3.1安装插件支持
//1.GCC 安装:
# yum install gcc-c++
//2.PCRE pcre-devel安装:
# yum install -y pcre pcre-devel
//3.ZLIB安装:
# yum install -y zlib zlib-devel
//4.OpenSSL 安装:
# yum install -y openssl openssl-devel
//5.下载Nginx,也可以本地下载压缩包上传到服务器。
# wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
//6.安装
//6.1 解压
# tar -zxvf nginx-1.10.1.tar.gz
//6.2 配置Nginx,进入压缩目录
# ./configure
//6.3编译
# make
//6.4查找安装路径
# make install
//6.5 查找安装路径
# whereis nginx
//6.6 查看版本
# nginx -v
成功显示路径及版本则安装成功,
默认安装路径位于 /usr/local/nginx/
3.2防火墙设置
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重启防火墙:service iptables restart
4.配置ngnix的conf/nginx.conf文件
# vim /usr/local/nginx/conf/nginx.conf
http {
upstream test{
server ip:192.168.0.143:8080 weight=5;
server ip:192.168.0.157:8080 weight=1;
}
server{
listen 80;
server name:localhost;
location /{
proxy_pass http:test;
}
}
}
- 192.168.0.143:8080 tomcat1的ip+端口
- weight 权重比,上面的配置意思是访问143ip五次,访问157ip一次,5:1的访问比例。
- listen 80 nginx的端口,一般不改
- server_name: localhost 不改动,这里是nginx的ip地址,我们配置在哪台服务器都是用localhost。
- proxy_pass http:test; 写我们upstream的方法名。
5.测试访问
5.1eclipse创建一个web项目Test,打成war包,上传到tomcat1
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<% String id=request.getParameter("id");
%>
<body>
tomcat 第11111台 <br>
<%=id%> <br>
</body>
</html>
浏览器访问: 192.168.0.157/Test?id=56456
页面显示
tomcat第1111台
56456
5.2将Test项目index修该成如下,上传到tomcat2
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<% String id=request.getParameter("id");
%>
<body>
tomcat 第2222台 <br>
<%=id%> <br>
</body>
</html>
浏览器访问: 192.168.0.157/Test?id=56456
页面返回
tomcat第2222台
56456
如上操作,说明负载均衡搭建成功,nginx帮我们分布到不同tomcat上。
6.nginx扩展学习
6.1nginx的操作
cd /usr/local/nginx/sbin
./nginx |
启动: |
./nginx -s stop |
停止 |
./nginx -s reload |
刷新配置 |
kill -TERM pid |
快速停止服务 |
kill -QUIT pid |
平缓停止服务 |
kill -9 pid |
强制停止服务 |
ps -aux | grep nginx |
查看有关nginx的进程 |
./nginx -t |
检查配置文件是否正确 |
6.2nginx.cof详解
# 全局区 有一个工作子进程,一般设置为CPU数 * 核数 worker_processes 1; events { # 一般是配置nginx进程与连接的特性 # 如1个word能同时允许多少连接,一个子进程最大允许连接1024个连接 worker_connections 1024; }
# 配置HTTP服务器配置段 http {
# 配置虚拟主机段 server {
# 定位,把特殊的路径或文件再次定位。 location {
} }
server { ... } } |
6.3Nginx日志格式
打开nginx.conf配置文件: #access_log logs/access.log main;
日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式
参数明细表: |
|
$remote_addr |
客户端的ip地址(代理服务器,显示代理服务ip) |
$remote_user |
用于记录远程客户端的用户名称(一般为“-”) |
$time_local |
用于记录访问时间和时区 |
$request |
用于记录请求的url以及请求方法 |
$status |
响应状态码,例如:200成功、404页面找不到等。 |
$body_bytes_sent |
给客户端发送的文件主体内容字节数 |
$http_user_agent |
用户所使用的代理(一般为浏览器) |
$http_x_forwarded_for |
可以记录客户端IP,通过代理服务器来记录客户端的ip地址 |
$http_referer |
可以记录用户是从哪个链接访问过来的 |