前言
大二暑期实习第一天,熟悉公司环境,框架,安装配置各种软件的过程中接到的学习任务:安装配置Niginx和Tomcat并且搭建一个Nginx+tomcat的高效负载均衡服务集群,刚接到任务时一脸懵逼(以前最多只会用用tomcat作为web容器),然后一个早上+中午各种百度,查阅各种资料博客最终完成了搭建,实习饮水机管理员的第一天,学习到了很多新的知识收获颇丰。
正文
本文章描述在阿里云服务器上从零开始搭建一个高效负载均衡服务集群。
系统配置
系统镜像:CentOS7.3
CPU:单核
内存:2GB
系统盘:40GB
CentOs中JDK安装
因为Tomcat是Java写的所以第一步我们应该先安装配置JDK
(以经完成的可以自行忽略此步骤)
首先查看当前系统有无自带的JDK
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
如果没有则进行安装JDK
yum install java-1.8.0-openjdk* -y
直到安装完成
输入查询jdk版本指令:
java -version
验证jdk是否安装成功,出现如下则代表成功
默认jre jdk 安装路径是/usr/lib/jvm 配置JDK环境变量 在/etc/profile修改环境变量,环境变量的作用域为所有的用户。vim /etc/profile
在/etc/profile的最下面加上:
#set java environment
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
执行
./etc/profile
使配置文件生效 检验环境变量是否配置成功依次输入
echo $JAVA_HOME
echo $CLASSPATH
echo $PATH
安装配置Tomcat
从tomcat官网下载tomca8的tar包网址:tomcat.apache.org/download-80…
将apache-tomcat-8.5.42.tar.gz文件用传到CentOS镜像上。 也可以直接在这边的下载路径用指令直接下载wegt http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
我的路径是/usr/local/tomcat
解压apache-tomcat-8.5.42.tar.gz文件
tar xf apache-tomcat-8.5.42.tar.gz
查看是否成功的安装:
cd apache-tomcat-8.5.42
ln -sv apache-tomcat-8.5.31 tomcat
配置环境变量: 在/etc/profile.d文件中新添一个tomcat.sh文件
vim /etc/profile.d/tomcat.sh
在里面添加:
CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5.42
//这边的地址是安装tomcat的路径
PATH=$CATALINA_BASE/bin:$PATH
export PATH CATALINA_BASE
输入指令让配置文件生效:
source /etc/profile.d/tomcat.sh
查看是否配置成功:
catalina.sh version
在这里tomcat已经可以正常的使用了,然后是一些tomcat的修改配置
文件目录conf/中的service.xml可以经行端口的修改,默认初始端口8080.
在游览器访问端口: http://localhost:8080/
Nginx安装
1、添加yum源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2、安装Nginx
yum install -y nginx
3、启动Nginx并设置开机自动运行 systemctl start nginx.service systemctl enable nginx.service 4、在去访问ip: http://localhost/
搭建tomcat负载均衡集群
单个Tomcat最大支持在线访问是500左右,要通知支持更多的访问量一个Tomcat就没法做到了。通过Nginx的反向代理多个tomcat,实现高性能负载均衡的tomcat集群 安装两个tomcat实列 通过复制:
cp -r tomcat-service-1 tomcat-service-2
然后配置两个tomcat的配置文件server.xml
vim conf/server.xml
使两个tomcat里面的端口号port不同。 修改<!Server><!Connector><!Connctor>的port,三个port分的有点远,得自己好好找
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
为了方便提供服务的是哪个tomcat,分别在两个tomcat文件目录中的webapp中新建一个test文件夹加一个jsp文件。
Jsp文件内容:<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>test</title>
</head>
<body>
<%
out.println("Hello World!"); //嵌入java语言
%>
</body>
</html>
量容器中的效果图:
然后修改Nginx中的配置文件
vim /etc/nginx/conf.d/default.conf
在开头添加
#服务器的集群
upstream netitcast.com { #服务器集群名字
server 127.0.0.1:8080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:8090 weight=2;
}
最终效果:
在多次快速刷新浏览器时,Nginx更具给的权重把任务分到两个tomcat中,实现均衡负载服务集群。在高用户量高并发的情况下,有效的均摊了服务压力。
后记
掘金新人,原来的博客都是在CSDN上的,这篇是来到掘金的第一篇,后续会把CSDN上的文章迁移过来,这个暑假也会继续撰写实习过程中的经历的技术问题。