教程:https://www.cnblogs.com/auguse/articles/13951019.html
一、新建虚拟机
二、Centos7更换镜像源
1.备份(针对所有CentOS可用,备份文件在当前路径下)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.安装wget
yum install -y wget
3.下载CentOS 7的repo文件
本人使用的阿里云第二个地址
1.阿里云源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.网易云源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
4.更新镜像源
1.#清除缓存
yum clean all
2.#生成缓存
yum makecache
3.更新yum源,等待更新完毕即可。(执行加载完后会卡顿一会)
yum -y update
4.yum clean all
5. yum makecache
三、JDK1.8安装
1.上传文件
上传文件至tmp目录下
2.解压
1.进入tmp,解压到opt目录下。
--注意版本,别傻乎乎直接复制
cd /tmp
tar -zxvf jdk-8u211-linux-x64.tar.gz -C /opt
2.进入opt目录将jdk改名
cd /opt
mv jdk1.8.0_211 jdk1.8
3.配置环境变量
1.进入文件
vi /etc/profile
2.将下面的内容添加在末尾
# JAVA_HOME
export JAVA_HOME=/opt/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
3.执行命令使配置生效
source /etc/profile
4.检测安装是否成功
java
javac
java -version
四、Tomcat8安装
由于是负载均衡,暂时安装2个Tomcat8
1.上传文件
上传至tmp目录下
2.解压
1.进入tmp目录,解压至opt目录下
cd /tmp
tar -zxvf apache-tomcat-8.5.55.tar.gz -C /opt
2.进入opt目录,改名改为tomcat1
cd /opt
mv apache-tomcat-8.5.55 tomcat1
3.启动tomcat
/opt/tomcat1/bin/startup.sh
3.开放8080端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
#更新防火墙规则
firewall-cmd --reload
4.访问
别傻乎乎复制,注意自己的ip和端口
http://172.16.6.117:8080/
5.安装第2个Tomcat
复制tomcat
1.进入opt目录,复制tomcat1并重命名为tomcat2
cd /opt
cp -r tomcat1 tomcat2
修改第2个tomcat配置文件
需要注意的是多台tomcat配置在同一个机器上避免冲突,需要修改端口
1.进入server.xml
vi /opt/tomcat2/conf/server.xml
启动
/opt/tomcat2/bin/startup.sh
开放8081端口
# 查询端口是否开放
firewall-cmd --query-port=8081/tcp
# 开放8081端口
firewall-cmd --permanent --add-port=8081/tcp
#更新防火墙规则
firewall-cmd --reload
访问
http://172.16.6.117:8081/
6.修改各个Tomcat的index.jsp
为了体现出各个Tomcat的区别,顺便修改一下各个tomcat的index.jsp文件用于区分tomcat
进入第1个Tomcat,找到h1标签
vi /opt/tomcat1/webapps/ROOT/index.jsp
再次访问第1个tomcat就发现不一样了
进入第2个tomcat修改,与上面步骤一样
vi /opt/tomcat2/webapps/ROOT/index.jsp
7.设置Tomcat开机自启
1.先给文件拥有者给 执行权限 x
chmod +x /etc/rc.d/rc.local
2.进入rc.local
vi /etc/rc.d/rc.local
3.在touch开头的下一行,写上需要开机启动的命令
export JAVA_HOME=/opt/jdk1.8
/opt/tomcat1/bin/startup.sh start
/opt/tomcat2/bin/startup.sh start
五、Nginx安装
1.添加 yum 源
Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源。
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装完 yum 源之后,可以查看一下。
yum repolist
下面是安装成功的显示信息
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,070
extras/7/x86_64 CentOS-7 - Extras 413
mysql-connectors-community/x86_64 MySQL Connectors Community 175
mysql-tools-community/x86_64 MySQL Tools Community 120
mysql56-community/x86_64 MySQL 5.6 Community Server 564
nginx/x86_64 nginx repo 206
updates/7/x86_64 CentOS-7 - Updates 1,134
repolist: 12,682
2.安装
yum install nginx
3.配置 Nginx 服务
本次执行启动服务和设置开机启动命令
1.启动服务
systemctl start nginx
2.设置开机启动
systemctl enable nginx
3.重启
systemctl restart nginx
4.停止服务
sudo systemctl stop nginx
5.重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。
sudo systemctl reload nginx
4.打开防火墙端口
默认 CentOS7 使用的防火墙 firewalld 是关闭 http 服务的(打开 80 端口)。
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
打开之后,可以查看一下防火墙打开的所有的服务
firewall-cmd --list-service
出现下面结果可以看到,系统已经打开了 http 服务。
ssh dhcpv6-client http
Nginx 是一个很方便的反向代理,需要指出的是 CentOS 7 的 SELinux,使用反向代理需要打开网络访问权限。打开网络权限之后,反向代理可以使用了。Nginx安装文件默认在/etc/nginx目录下。
setsebool -P httpd_can_network_connect on
5.访问
直接访问服务器IP,若出现以下信息则说明到这里我们的Nginx就安装成功了!
注意自己的ip
http://172.16.6.117/
六、配置Nginx完成反向代理、负载均衡
1.修改配置文件
修改Nginx配置文件,注意特别注意:里面的内容全部删除,更换为下面的内容。
vi /etc/nginx/nginx.conf
注意下面的ip,每个人都不一样,别傻乎乎直接复制
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
# 各工程最大连接数
worker_connections 1024;
}
http {
# upstream 各服务器地址以及权重,权重越大代表访问率越大
upstream alie.com {
server 172.16.6.117:8081 weight=1;
server 172.16.6.117:8080 weight=1;
}
server {
# 端口默认80
# 配置域名,由于没有域名,因此使用localhost
server_name localhost;
location / {
# 反向代理,这里的地址与上面配置的upstream需一致,实现负载均衡
proxy_pass http://alie.com;
proxy_redirect default;
}
}
}
2.重启
重启Nginx并进行访问测试
systemctl reload nginx
3.访问
直接访问服务器的80端口,Nginx便会通过反向代理将请求转发至配置好的服务器集群中,通过不断刷新即可发现可以访问不同的tomcat。
http://172.16.6.117/
七、redis安装
1.下载fedora的epel仓库
yum install epel-release
2.安装redis数据库
在centos7.3默认安装readis后配置文件在/etc/目录下
yum install redis
3.常见命令介绍
本次执行启动服务和设置开机自启命令
1.启动服务
systemctl start redis
2.设置开机自启动
systemctl enable redis
3.停止服务
systemctl stop redis
4.重启服务
systemctl restart redis
5.查看服务状态
systemctl status redis
6.查看redis进程
ps -ef | grep redis
7.查看端口
netstat -lnp|grep 6379
4.修改redis配置文件
vi /etc/redis.conf
修改配置文件redis.conf 大概在55行左右。修改bind 后面的ip为 0.0.0.0 即可
八、配置tomcat session redis同步
1.上传jar包
通过TomcatClusterRedisSessionManager,这种方式支持redis3.0的集群方式,下载tomcat-cluster-redis-session-manager.zip包,注意:在github要下载最新版的包
将下面4个jar包上传到tomcat1/lib和tomcat1/lib下,直接覆盖原来的jar包
2.配置context.xml
先关闭Tomcat
关闭第1个
/opt/tomcat1/bin/shutdown.sh
关闭第2个
/opt/tomcat2/bin/shutdown.sh
分别配置2个tomcat的context.xml
vi /opt/tomcat1/conf/context.xml
vi /opt/tomcat2/conf/context.xml
将下面的内容放在<Context>标签里面配置
,参考下图中的位置
<Valve className ="tomcat.request.session.redis.SessionHandlerValve"/>
<Manager className ="tomcat.request.session.redis.SessionManager"/>
host="127.0.0.1"
port="6379"
password="" # 如果设置了密码则在这里配置上
database="0" # redis默认16个database 第一个是0 最后一个是15
maxInactiveInterval="60" />
3.配置web.xml
配置会话到期时间
分别配置2个tomcat的web.xml
进入下面文件后,输入命令:/session进行搜索
vi /opt/tomcat1/conf/web.xml
vi /opt/tomcat2/conf/web.xml
将会话到期时间30改为60
4.启动tomcat
/opt/tomcat1/bin/startup.sh
/opt/tomcat2/bin/startup.sh
5.测试,增加文件
在tomcat1/webapps/ROOT和tomcat2/webapps/ROOT新建文件session.jsp,然后将下面内容粘贴进去。注意
内容上下都要修改
vi tomcat1/webapps/ROOT/session.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>
tomcat-1
</body>
<html>
vi tomcat2/webapps/ROOT/session.jsp
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>tomcat-2</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>
tomcat-2
</body>
<html>
6.访问
http://172.16.6.117/session.jsp
tomcat-1节点与tomcat-2节点配置相同,测试,我们每次强刷他的sessionID都是一致的,所以我们认为他的session会话保持已经完成,你们也可以选择换个客户端的IP地址来测试