(1) 安装nginx
安装nginx依赖包
yum -y install openssl-devel pcre-devel zlib-devel
编译安装nginx
链接nginx命令目录
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
(2)配置nginx反向代理: 反向代理+负载均衡+健康探测, nginx.conf文件内容:
Vim /usr/local/nginx/conf/nginx.conf 添加
20 添加
upstream backend_tomcat {
server 192.168.1.20:8080 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.1.30:8080 weight=1 max_fails=2 fail_timeout=10s;
}
24添加
proxy_connect_timeout 75;
proxy_send_timeout 75;
proxy_read_timeout 75;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
48 添加
location / {
# index index.jsp index.html index.htm;
proxy_pass http://backend_tomcat;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
50添加
(2) 开启nginx并查看端口
4、安装部署tomcat应用程序服务器(两台都是)
(1)安装tomcat并开启,查看端口
20 tar zxf apache-tomcat-8.5.35.tar.gz
将解压生成的文件夹移动到/usr/local/下,并改名为tomcat
21 mv apache-tomcat-8.5.35 /usr/local/tomcat
22 /usr/local/tomcat/bin/startup.sh
23 netstat -anpt |grep 8080
浏览器测试
好了,大家可以看到访成功。说明我们的tomcat安装完成,下面我们来修改配置文件
(2)设置默认虚拟主机
vim /usr/local/tomcat/conf/server.xml 150添加
<Context docBase="/web/webapp1" path="" reloadable="true"/>
(3)创建所需目录和网页
30 mkdir -p /web/webapp1
31 vim /web/webapp1/index.jsp
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>tomcat-1</title>
</head>
<body>
<h1><font color="red">Session serviced by tomcat</font></h1>
<table aligh="center" border="1">
<tr>
<td>Session ID</td>
<td><%=session.getId() %></td>
<% session.setAttribute("abc","abc");%>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
<html>
(4)重启tomcat
(5)浏览器测试
验证健康检查的方法可以关掉一台tomcat主机,用客户端浏览器测试访问。从上面的结果能看出两次访问, nginx把访问请求分别分发给了后端的tomcat-1和tomcat-2,客户端的访问请求实现了负载均衡,但sessionid并不一样。 所以,到这里我们准备工作就全部完成了,下面我们来配置tomcat通过redis实现会话保持。
5、 安装redis
(1)编译安装redis
23 rz
24 tar zxf redis-4.0.14.tar.gz
25 mv redis-4.0.14 /usr/local/redis
26 cd /usr/local/redis/
27 make && make install
(2)切换到utils目录下,执行redis初始化脚本install_server.sh
29 cd utils/
30 ./install_server.sh
31 netstat -anput | grep redis
通过上面的安装过程,我们可以看出redis初始化后redis配置文件为
/etc/redis/6379.conf,日志文件为/var/log/redis_6379.log,数据文件dump.rdb存
放到/var/lib/redis/6379目录下,启动脚本为/etc/init.d/redis_6379。
现在我们要使用systemd,所以在 /etc/systems/system 下创建一个单位文件名字
为 redis_6379.service。
(3)修改 /etc/redis/6379.conf
bind 0.0.0.0 70修改
requirepass 123.com 501去注释设置密码
(4)重启一下redis并看端口
/etc/init.d/redis_6379 restart
netstat -anput | grep redis
(5)redis测试
6、 配置tomcat session redis同步 (两台tomcat都是)
(1)下载tomcat-redis-session-manager相应的jar包,下载完成后拷贝到$TOMCAT_HOME/lib中
(2)修改/usr/local/tomcat/conf/context.xml 倒数第二行添加
<Manager pathname="" /> 去注释
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="192.168.1.40"
password="123.com"
port="6379"
database="0"
maxInactiveInterval="60" />
(3)重启tomcat
(4)redis重启
(5)浏览器测试
可以看出,分别访问了不同的tomcat,但是得到的session却是相同的,说明达到了集群的目的。
(6)redis测试
192.168.1.80 作为mysql数据库服务器
(1)mysql配置
mysql -u root -p 123
grant all on . to javauser@‘192.168.1.%‘ identified by ‘javapasswd‘;
create database javatest;
use javatest;
create table testdata(id int not null auto_increment primary key,foo varchar(25),bar int);
insert into testdata(foo,bar) values (‘hello‘,‘123456‘),(‘ok‘,‘654321‘),(‘xgp‘,‘1123645‘);
select * from testdata;
(2)tomcat配置(两台都是)
进入配置教程
<1>/usr/local/tomcat/conf/context.xml 倒数第二行添加
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="javauser" password="javapasswd" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.1.80:3306/javatest"/>
<2>创建所需目录和网页
55 cd /web/webapp1/
56 mkdir WEB-INF
57 vim WEB-INF/web.xml 添加
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
<3>创建test.jsp网页
vim /web/webapp1/test.jsp 修改
<%@ page language="java" import="java.sql." pageEncoding="GB2312"%>
<html>
<head>
<title>MySQL-1</title>
</head>
<body>
connect MySQL<br>
<%
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://192.168.1.80:3306/javatest";
String username = "javauser";
String password = "javapasswd";
Class.forName(driverClass);
Connection conn=DriverManager.getConnection(url, username, password);
Statement stmt=conn.createStatement();
ResultSet rs = stmt.executeQuery("select from testdata");
while(rs.next()){
out.println("<br>foo:"+rs.getString(2)+"bar:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
%>
<4>重启tomcat
40 /usr/local/tomcat/bin/shutdown.sh
41 /usr/local/tomcat/bin/startup.sh
(3)浏览器测试
原文:https://blog.51cto.com/14320361/2447111