一、JDK1.8 环境搭建
1、上传文件解压
[root@localhost tmp]# tar -zxvf jdk-8u172-linux-x64.tar.gz -C /opt [root@localhost tmp]# cd /opt [root@localhost opt]# mv jdk1.8.0_161 jdk1.8
2、检查环境,已经安装删除
[root@localhost mysoft]# ps -aux|grep java [root@localhost mysoft]# rpm -e --nodeps rpm -qa | grep java
3、配置环境变量
[root@localhost /]# vim /etc/profile # 文件末尾追加 下面内容 shit+g 跳到文件末尾 # JAVA_HOME export JAVA_HOME=/opt/jdk1.8 export PATH=$PATH:$JAVA_HOME/bin
#注意添加完成后需要执行命令配置生效
[root@localhost /]# source /etc/profile
4、检测安装成功
[root@localhost /]# java -version openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
二、TOMCAT8 安装
1、上传安装包
[root@localhost tmp]# tar -zxvf apache-tomcat-8.5.40.tar.gz -C /opt [root@localhost opt]# mv apache-tomcat-8.5.40 tomcat8
2、启动服务
[root@localhost bin]# pwd /opt//tomcat8/bin [root@localhost bin]# ./startup.sh
3、访问测试
http://127.0.0.1:8080/
4、一台服务器配置多个tomcat
需要注意的是多台tomcat配置在同一个机器上避免冲突,需要修改端口
在opt下复制tomcat8改名为tomcat,然后进入到conf目录下修改server.xml文件
vi /opt/tomcat/conf/server.xml
具体修改内容如下:
同时为了体现出各个Tomcat的区别,顺便修改一下各个tomcat的index.jsp文件用于区分tomcat
vi /opt/tomcat/webapps/ROOT/index.jsp
三、Nginx的安装
步骤 1: 添加 yum 源
Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源。
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装完 yum 源之后,可以查看一下。
[root@localhost ~]# sudo 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
可以发现 nginx repo
已经安装到本机了。
步骤 2: 安装
yum 安装 Nginx,非常简单,一条命令。
$ sudo yum install nginx
步骤 3: 配置 Nginx 服务
设置开机启动
$ sudo systemctl enable nginx
启动服务
$ sudo systemctl start nginx
停止服务
$ sudo systemctl restart nginx
重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。
$ sudo systemctl reload nginx
步骤 4: 打开防火墙端口
默认 CentOS7 使用的防火墙 firewalld 是关闭 http 服务的(打开 80 端口)。
$ sudo firewall-cmd --zone=public --permanent --add-service=http success $ sudo firewall-cmd --reload success
打开之后,可以查看一下防火墙打开的所有的服务
$ sudo firewall-cmd --list-service
ssh dhcpv6-client http
可以看到,系统已经打开了 http 服务。
Nginx 是一个很方便的反向代理,需要指出的是 CentOS 7 的 SELinux,使用反向代理需要打开网络访问权限。
$ sudo setsebool -P httpd_can_network_connect on
打开网络权限之后,反向代理可以使用了。Nginx安装文件默认在/etc/nginx目录下,
然后直接访问服务器IP,若出现以下信息则说明到这里我们的Nginx就安装成功了!
四、配置Nginx完成反向代理、负载均衡
修改Nginx配置文件,注意特别注意:http里面默认的东西需要全部删除
vi nginx.conf
events { # 各工程最大连接数 worker_connections 1024; } http { # upstream 各服务器地址以及权重,权重越大代表访问率越大 upstream alie.com { server xxx.xx.xx.66:8081 weight=2; server xxx.xx.xx.66:8080 weight=1; } server { # 端口默认80 # 配置域名,由于没有域名,因此使用localhost server_name localhost; location / { # 反向代理,这里的地址与上面配置的upstream需一致,实现负载均衡 proxy_pass http://alie.com; proxy_redirect default; } } }
重启Nginx并进行访问测试
$ sudo systemctl reload nginx
直接访问服务器的80端口,Nginx便会通过反向代理将请求转发至配置好的服务器集群中,通过不断刷新即可发现可以访问不同的tomcat。
至此,使用Nginx通过反向代理实现负载均衡就已经完成啦。
五、绑定其他端口
Nginx 默认绑定的端口是 http 协议的默认端口,端口号为:80
,如果需要绑定其他端口,需要注意 SELinux 的配置
例如:绑定 8081 端口,但是会发现无法启动,一般的报错如下
YYYY/MM/DD hh:mm:ss [emerg] 46123#0: bind() to 0.0.0.0:8081 failed (13: Permission denied)
此时需要更改 SELinux 的设置。我们使用 SELinux 的管理工具 semanage
进行操作,比较方便。
安装 semanage
使用如下命令
$ sudo yum install policycoreutils-python
然后查看是否有其他协议类型使用了此端口
$ sudo semanage port -l | grep 8081 transproxy_port_t tcp 8081
返回了结果,表明已经被其他类型占用了,类型为 transproxy_port_t
。
我们还要查看一下 Nginx 的在 SELinux 中的类型 http_port_t
绑定的端口
$ sudo semanage port -l | grep http_port_t http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000 pegasus_http_port_t tcp 5988
第一行 http_port_t
中没有包含 8081
这个端口。因此需要修改 8081
端口到 http_port_t
类型中。
$ sudo semanage port -m -p tcp -t http_port_t 8081
如果没有其他协议类型使用想要绑定的端口,如 8001
,则我们只要新增到 SELinux 中即可。
$ sudo semanage port -l | grep 8001 $ sudo semanage port -a -p tcp -t http_port_t 8001
此时,重新启动 Nginx 即可。
六、安装redis
1、下载fedora的epel仓库
yum install epel-release
2、安装redis数据库
yum install redis
3、常见命令介绍
systemctl start redis #启动服务 systemctl stop redis #停止服务 systemctl restart redis #重启服务 systemctl status redis #查看服务状态 systemctl enable redis #设置开机自启动 ps -ef | grep redis #查看redis进程 netstat -lnp|grep 6379 #查看端口
在centos7.3默认安装readis后配置文件在/etc/目录下
4.修改redis配置文件
vi /etc/redis.conf
修改配置文件redis.conf 大概在55行左右。修改bind 后面的ip为 0.0.0.0 即可,
七、配置tomcat session redis同步
通过TomcatClusterRedisSessionManager,这种方式支持redis3.0的集群方式,下载tomcat-cluster-redis-session-manager.zip包,解压放到tomcat/lib下
注意:在github要下载最新版的包
在tomcat/conf/context.xml这个<Context>标签里面配置,切记tomcat关闭哦
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <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" /> </Context>
配置会话到期时间在../conf/web.xml
<session-config>
<session-timeout>60</session-timeout>
</session-config>
启动tomcat服务
[root@localhost bin]# cd /opt/tomcat1/bin/ [root@localhost bin]# ./startup.sh [root@localhost bin]# cd /opt/tomcat2/bin/ [root@localhost bin]# ./startup.sh
测试,增加文件
在tomcat/webapps/ROOT新建文件session.jsp
[root@localhost ROOT]# vi /opt/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>
Tomcat-1节点与tomcat-2节点配置相同,测试,我们每次强刷他的sessionID都是一致的,所以我们认为他的session会话保持已经完成,你们也可以选择换个客户端的IP地址来测试