从0开始搭建Nginx+tomcat高效负载均衡服务集群(附加jdk,tomcat,nginx安装配置)

1,660 阅读4分钟

前言

大二暑期实习第一天,熟悉公司环境,框架,安装配置各种软件的过程中接到的学习任务:安装配置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上的文章迁移过来,这个暑假也会继续撰写实习过程中的经历的技术问题。