Redhat/CentOS7-环境虚拟机简单搭建Nginx+Tomcat负载均衡集群

  Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。由于Tomcat处理静态HTML的能力运不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。

  Nginx服务器能支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低.

通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂请求等问题,不能单独应用于生产环境下,目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,简单来说就是Nginx作为负载均衡器,响应客户端的请求,Tomcat作为应用服务器的负载集群,处理客户端的请求,也就是说Nginx将访问请求转发给后端服务器池的服务器来处理。网站拓扑图如图所示:

案例环境:

虚拟机Nginx服务器1:Redhat7.4--192.168.113.151--nginx1.9.15

虚拟机tomcat1服务器2:Redhat7.4--192.168.113.129--tomcat7.0.76

虚拟机tomcat2服务器3:Redhat7.4--192.168.113.151--tomcat7.0.76

所有虚拟机均使用NAT模式虚拟机共享主机IP地址,均关闭防火墙,安装了net-toos RPM包

  • Tomcat1 server配置

1.启动主机后关闭防火墙

systemctl disable firewalld.service //禁用开机启动防火墙服务
systemctl enable firewalld.service  //启用开机启动防火墙服务
systemctl stop firewalld.service //关闭防火墙服务
systemctl start firewalld.service //启动防火墙服务

2.yum安装net-tools工具包 (部分CENT7.0新系统中没有netstat 和 ifconfig命令,安装此包即可解决)

yum -y install net-tools wget

3.安装配置Tomcat

>>检测本机是否安装Tomcat

systemctl status tomcat.service   /*或者*/    systemctl status tomcat

>>出现如下图所示,本机没有安装Tomcat

>>查看Tomcat信息

yum info tomcat

>>安装Tomcat

 yum -y install tomcat

>>查看Tomcat是否安装成功

rpm -q tomcat
rpm -ql tomcat   //查看并列出详细路径信息
rpm -qa tomcat   //查看并列出所有已安装RPM包

>>执行命令后,出现如下图所示,表示安装成功

[root@localhost webapp1]# rpm -q tomcat

tomcat-7.0.76-8.el7_5.noarch

4、配置Tomcat环境变量

>>Tomcat默认安装路径/usr/share/tomcat/

>>在/etc/profile配置文件中加入Tomcat环境变量
CATALINA_BASE=/usr/share/tomcat

CATALINA_HOME=/usr/share/tomcat

export JAVA_HOME PATH CLASSPATH CATALINA_BASE CATALINA_HOME

>>快速更改Tomcat在启动时使用的Java选项
>>在JAVA_OPTS行添加。 随意改变Xmx和MaxPermSize值,这些设置会影响Tomcat会使用多少内存:
JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx512m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC"

>>保存并关闭profile文件,执行如下命令生效
source /etc/profile

>>使用如下命令查看Tomcat变量
echo $CATALINA_BASE
echo $CATALINA_HOME

5、启动Tomcat和无法访问原因

>>启动 Tomcat
  systemctl start tomcat

>>查看Tomcat是否启动成功
  systemctl status tomcat

已经跑起来了

>>Tomcat默认运行在8080端口,运行netstat命令查看8080端口监听的信息。

[root@localhost /]# netstat -ntap | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 1136/java

>>在浏览器输入IP192.168.113.129:8080,无法访问,效果如下:

5.1、不能访问的原因
因为前面安装的是 tomcat 的基础服务,并没有安装浏览器管理界面,接下来我们需要安装管理包

执行命令firewall-cmd --zone=public --add-port=8080/tcp --permanent 永久开放8080端口,否则会导致无法访问

开放8080后执行 systemctl restart firewalld.service重启防火墙

5.2 开机启动Tomcat
systemctl enable tomcat.service

6、安装Tomcat管理包

>>安装Tomcat根页面(tomcat-webapps)和Tomcat Web应用程序管理器和Virtual Host Manager(tomcat-admin-webapps),请运行以下命令:

yum install -y tomcat-webapps tomcat-admin-webapps

>>安装在线文档(可选)
yum install -y tomcat-docs-webapp tomcat-javadoc

>>安装完成后,检查/usr/share/tomcat/webapps目录是否存在如下文件夹

7、访问Web界面

打开浏览器在地址栏输入服务器IP:8080,例如我的地址:192.168.113.129:8080,效果如下:

8.建立Java的web站点

(1).在根目录下建立一个web/webapp1目录,用于存放网站文件。

 mkdir -pv /web/webapp1

(2).在app目录下建立一个index.jsp的测试页面。

 vim /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注释<html> <head> <title>JSP test1 page</title> //测试页标题 </head> <body> <% out.println("Welcome to test site,http://www.test1.com");%> //测试页主体内容 </body></html>

(3).修改Tomcat的server.xml文件。

定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1,在host段增加context段。

[root@Redhat7~]# vim /usr/local/tomcat8/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"><Context docBase="/web/webapp1" path="" reloadable="false"></Context>
  • docBase:web应用的文档基准目录
  • reloadable: 设置监视“类”是否变化
  • path="": 设置默认“类

(4).关闭Tomcat,再重新启动。

/usr/local/tomcat8/bin/shutdown.sh //关闭Tomcat/usr/local/tomcat7/bin/startup.sh //重启Tomcat

(5).通过浏览器访问http://192.168.113.129:8080/, 出现下面的界面,说明Tomcat站点配置成功并且能够运行JSP了。

  • Tomcat2 server配置

  • Tomcat2 server配置方法基本同Tomcat1,其中包括:

1.启动主机后关闭防火墙。

2.安装JDK,配置Java环境,版本与Tomcat1 server一致。

3.安装配置Tomcat,版本与Tomcat1 server一致。

4.创建/web/webapp1目录,修改Tomcat配置文件server.xml文件,将网站文件目录更改到/web/webapp1/路径下。

5.在/web/webapp1/路径下建立index.jsp,为了区别将测试页index.jsp的内容更改如下:

[root@localhost ~]# vim /web/webapp1/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注释<html> <head> <title>JSP test2 page</title> //测试页标题 </head> <body> <% out.println("Welcome to test site,http://www.test2.com");%> //测试页主体内容 </body></html>

6.启动tomcat,浏览器访问http://192.168.113.150:8080/, 出现下面的界面,说明Tomcat站点配置成功并且能够运行JSP了。

  • Nginx服务器配置

  • 在Nginx服务器192.168.113.151上安装Nginx,反向代理两个Tomcat站点,并实现负载均衡。
  • 1.关闭防火墙
systemctl disable firewalld.servicesystemctl stop firewalld.service
  • 2.yum安装支持软件
yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel openssl-devel net-tools wget
  • 3.解压并安装Nginx
groupadd www                                                     //创建www组useradd -g www -s /bin/false www      //创建运行用户www,强制禁止登陆系统shell环境
wget http://http://nginx.org/download/nginx-1.9.15.tar.gz  //获取下载nginx tar
tar zxvf nginx-1.9.15.tar.gz -C /opt                  //解压nginx软件至/opt目录下cd /opt/nginx-1.9.15/                                      //切换到解压后的nginx文件夹目录下
                                    //配置nginx的具体选项

./configure --prefix=/usr/local/nginx  --user=www --group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module
  • --prefix=/usr/l,ocal/nginx:指定nginx安装路径
  • --user=www,--group=www:指定运行的用户和组
  • --with-file-aio:启用文件修改支持
  • --with-http_stub_status_module:启用状态统计
  • --with-http_gzip_static_module:启用gzip静态压缩
  • --with-http_flv_module:启用flv模块,提供寻求内存使用基于时间的偏移量文件
  • --with-http_ssl_module:启用ssl模块

  make                                                                   //编译安装nginx

  make install                                                        //编译安装nginx

4.配置nginx.conf

vim /usr/local/nginx/conf/nginx.conf

解除首行注释,启用修改首行nginx的用户 www 用户组 www

user www www;

(1).在http{...}中加入以下代码,设定负载均衡的服务器列表,weight参数表示权值,权值越高被分配到的概率越大。为了使测试效果明显,把权重设置为一样。

upstream tomcat_server {  server 192.168.113.129:8080 weight=1; server 192.168.113.150:8080 weight=1;  }                                                                                                      //配置后端服务池tomcat_server,以提供响应数据

(2).在http{...} - server{...} - location /{...}中加入一行“proxy_pass http://tomcat_server;” 。

location / { root html; index index.html index.htm; proxy_pass http://tomcat_server;                                               //配置将访问请求转发给后端服务器池的服务器处理 }

利用以上方式,把Nginx的默认站点通过proxy_pass方法代理到了设定好的tomcat_server负载均衡服务器组上。

5.测试nginx配置文件是否正确。

[root@RedHat7-1 ~]# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6.启动Nginx服务并查看其端口

[root@RedHat7-1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/                    //创建nginx主程序的软链接,方便调用nginx命令[root@RedHat7-1 ~]#/usr/local/nginx/sbin/nginx                //启动nginx服务
[root@RedHat7-1 ~]#/usr/local/nginx/sbin/nginx -v           //查看nfinx版本
[root@RedHat7-1 ~]#/usr/local/nginx/sbin/nginx -s reload   //重动nginx服务
[root@RedHat7-1 ~]#/usr/local/nginx/sbin/nginx -s stop    //停止nginx服务
[root@RedHat7-1 ~]#/usr/local/nginx/sbin/nginx -s start   //启动nginx服务
[root@RedHat7-1 ~]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17819/nginx: master[root@RedHat7-1 ~]# killall -1 nginx //重启nginx服务
  • 测试负载均衡效果

1.打开浏览器访问http://192.168.113.151/.

2.不断刷新浏览器测试,可以看到由于权重相同,页面会反复在以下两个页面切换。

第一次访问,出现test1的测试页面,刷新后,第二次访问出现test2的测试页面,这说明负载均衡集搭建成功,已经可以在两个tomcat server站点间进行切换了。

真实环境中,服务器集群站点的内容相同,这里是为了测试负载均衡集的效果而建立2个不同的测试页面。

原文地址:https://www.cnblogs.com/vilenx/p/10452011.html

时间: 2024-10-13 08:01:59

Redhat/CentOS7-环境虚拟机简单搭建Nginx+Tomcat负载均衡集群的相关文章

搭建Nginx+Tomcat 负载均衡集群

实验拓扑: 实验要求: 客户访问192.168.10.10,第一次或者第一个请求将请求交给10.101,第二次或者第二个请求交给10.102.实现两台服务器负载,多台的搭建方法相同. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar.gz Tomcat服务器1 CentOS 6.5   x86_64 apache-tomcat-7.0.54.tar.gz  jdk-7u65-linux-x64.gz Tomcat服务器2 Ce

Nginx+Tomcat负载均衡集群

第3章:部署Tomcat及其负载均衡(案例) 防伪码:成功之前必须与孤独为伍! Tomcat应用场景:  Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的的场合下被普遍应用,是开始和调试JSP程序的首选.但是由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端.如图所示 一.部署tomcat 1.安装JDK,配置Java环境 1)安装jdk,建立

Nginx + Tomcat 负载均衡集群的搭建实例

操作系统: CentOS6.5   JDK软件版本:jdk1.7.0_65  Tomcat软件版本:apache-tomcat-7.0.54 案例环境:拓扑图和案例环境 一.在对应的服务器上分别安装Nginx和Tomcat 1.Nginx的安装方法大家可以参考:Nginx的源码安装 2.Tomcat的安装方法大家可以参考:Tomcat的安装与配置 注意:如果防火墙没有关闭的朋友,在安装完成之后,分别在对应的服务器上创建防火墙规则 Nginx服务器上防火墙规则 Tomcat服务器上防火墙规则 二.

使用Redis存储Nginx+Tomcat负载均衡集群的Session

环境:Cent OS 7.0(虚拟机环境).Nginx 1.9.8.Redis 3.2.1 一.背景 在使用Nginx+Tomcat实现负载均衡的时候,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因为会出现session不同步或者丢失的问题. 二.Nginx安装与配置 1.Nginx安装 网上的资源对于安装Nginx的介绍比较多,例如最简单的为: (1) 获取nginx,在http://nginx.org/download/上可以获取当前最新的

实战Nginx+Tomcat负载均衡集群

实验环境:RHEL6.5  server1.example.com 172.25.254.1                                           server2.example.com 172.25.254.2      实验内容: 1.tomcat基本配置     1.1安装tomcat 1.2配置环境变量并启动tomcat 1.3设置开机启动 2.配置测试网页 (1)自己写的JSP测试页进行测试 (2) 网络中的测试页 3.编辑nginx的配置文件 4.测试访

Nginx+Tomcat 负载均衡集群

案例分析 通常情况下,一台Tomcat站点由于可能出现单点故障及无法应对多客户复杂多样性的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善Web站点架构. Nginx是一款非常优秀的http服务器软件,他能够支持最高达50000个并发连接数的响应,拥有强大的静态 资源处理能力,运行稳定,并且内存.cpu等系统资源消耗非常低.目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升站点的负载并发能力. 本案例我们以Nginx作为负载均衡器,T

linux企业常用服务---部署Nginx+Tomcat负载均衡集群

部署前准备: iptables和selinux不做配置,关掉 系统光盘作为yum源,配置yum文件 源码包准备jdk-7u65-linux-x64.gz apache-tomcat-7.0.54.tar.gz 注意源码包存放位置要与脚本中相互对应 环境介绍: 一台nginx,两台tomcat 分别在后端tomcat1和tomcat2上配置: [[email protected] ~]# vi install_tomcat.sh #!/bin/bash ##by linuxfan ########

部署Nginx+Tomcat负载均衡集群

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求.实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的.因为Tomcat 技术先进.

使用Redis存储Nginx+Tomcat负载均衡集群的Session (笔记)

引用:http://blog.csdn.net/xlgen157387/article/details/52024139 注意事项: nginx配置文件nginx.conf: upstream mynginxserver {    #weigth参数表示权值,权值越高被分配到的几率越大    #本机上的Squid开启3128端口        server 127.0.0.1:8080 weight=1;        server 127.0.0.1:8060 weight=1;    } s