Apache负载均衡请求至Tomcat

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介:

实验环境:


系统 :centos6.4

Apache 172.16.4.7

Tomcat1 172.16.4.5

Tomcat2 172.16.4.11


一、在后端服务器上安装 tomcat、jdk


1、安装jdk

#rmp -ivh jdk-7u9-linux-x64.rpm

# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/latest

export PATH=$JAVA_HOME/bin:$PATH

#. /etc/profile.d/java.sh

# java -version

java version "1.7.0_09"

Java(TM) SE Runtime Environment (build 1.7.0_09-b05)

Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)


2、安装部署tomcat

# tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/

# cd /usr/local/

# ln -sv apache-tomcat-7.0.42 tomcat

# vim /etc/profile.d/tomcat.sh

export CATALINA_HOME=/usr/local/tomcat

export PATH=$CATALINA_HOME/bin:$PATH

#. /etc/profile.d/tomcat.sh


3、Tomcat提供SysV脚本

# vim /etc/init.d/tomcat

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

CATALINA_HOME=/usr/local/tomcat

export CATALINA_HOME

# export CATALINA_OPTS="-Xms128m -Xmx256m"

exec $CATALINA_HOME/bin/catalina.sh $*

#chmod +x /etc/init.d/tomcat

# chkconfig --add tomcat

就可以启动服务了

#service tomcat start


二、修改配置文件


1、修改修改配置

# vim /usr/local/tomcat/conf/server.xml

修改默认端口为80

<Connector port="80" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

找到host添加

<Engine name="Catalina" defaultHost="www.test.com"jvmRoute="TomcatA">

<Host name="www.test.com" appBase="/tocat/app1"

unpackWARs="true" autoDeploy="true">

<Context path="/" docBase="/tomcat/app1" />

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="test_access_log." suffix=".txt"

pattern="%h %l %u %t "%r" %s %b" />

</Host>

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

#vim tomcat-users.xml 加用户

-->

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<role rolename="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

# mkdir /tomcat/app1 -pv


2、添加测试文件

#vim index.jsp

<%@ page language="java" %>

<html>

<head><title>TomcatA</title></head>

<body>

<h1><font color="red">TomcatA </font></h1>

<table align="centre" border="1">

<tr>

<td>Session ID</td>

<% session.setAttribute("abc","abc"); %>

<td><%= session.getId() %></td>

</tr>

<tr>

<td>Created on</td>

<td><%= session.getCreationTime() %></td>

</tr>

</table>

</body>

</html>

#service tomcat stop

#service tomcat start

# jps

7334 Bootstrap

7355 Jps


3、测试一下

220746630.png

4、配置另外一台tomcat服务,和前面配置的tomcatA相同,只需要修改特定的选项

# vim /usr/local/tomcat/conf/server.xml

找到host添加

<Engine name="Catalina" defaultHost="www.test.com"jvmRoute="TomcatA">

其他的和前面配置相同


5、添加测试文件

# mkdir /tomcat/app1 -pv

#vim index.jsp

<%@ page language="java" %>

<html>

<head><title>TomcatB</title></head>

<body>

<h1><font color="blue">TomcatB </font></h1>

<table align="centre" border="1">

<tr>

<td>Session ID</td>

<% session.setAttribute("abc","abc"); %>

<td><%= session.getId() %></td>

</tr>

<tr>

<td>Created on</td>

<td><%= session.getCreationTime() %></td>

</tr>

</table>

</body>

</html>

测试一下

222655546.png

三、安装配置apache


配置代理单台tomcat服务

1、编译安装 参考博客http://qidian510.blog.51cto.com/7319882/1282663

首先我们要安装aprapr-util

下载地址http://apr.apache.org/http://apr.apache.org/

(1) 编译安装apr

# tar xf apr-1.4.6.tar.bz2

# cd apr-1.4.6

# ./configure --prefix=/usr/local/apr

# make && make install

(2) 编译安装apr-util

# tar xf apr-util-1.5.2.tar.bz2

# cd apr-util-1.5.2

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

编译安装apache

# yum install -y pcre-devel openssl-devel

#tar xf httpd-2.4.6.tar.bz2

#cd httpd-2.4.6

--enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-lbmethod-heartbeat --enable-heartbeat --enable-slotmem-shm --enable-slotmem-plain --enable-watchdog

# make && make install


2、配置服务

# vim /etc/rc.d/init.d/httpd

apachectl=/usr/local/apache/bin/apachectl

httpd=${HTTPD-/usr/local/apache/bin/httpd}

prog=httpd

pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd}

RETVAL=0

STOP_TIMEOUT=${STOP_TIMEOUT-10}

给其执行权限,添加服务并且设定为自动运行

#chmod +x /etc/rc.d/init.d/httpd

#chkconfig --add httpd

#chkconfig httpd on

# cd /usr/local/apache/conf

# vim httpd.conf

启用模块

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

在最后添加

ProxyVia Off

ProxyRequests Off

ProxyPreserveHost Off

<Proxy *>

Require all granted

</Proxy>

ProxyPass / ajp://172.16.4.5:8009/

ProxyPassReverse / ajp://172.16.4.5:8009/

<Location / >

Require all granted

</Location>

如上apache相关指令说明:


ProxyPreserveHost {On|Off}:如果启用此功能,代理会将用户请求报文中的Host:行发送给后端的服务器,而不再使用ProxyPass指定的服务器地址。如果需要反向代理中支持虚拟主机,则开启此项。


ProxyVia {On|Off|Full|Block}:用于控制在http首部是否使用Via:。默认为Off,即不启用此功能;On表示每个请求和响应报文均添加Via:;Full表示每个Via:行都会添加当前apache服务器的版本号信息;Block表示每个代理请求报文中的Via:都会被移除。


ProxyRequests {On|Off}:是否开启apache正向代理的功能;启用此项时为了代理http协议必须启用mod_proxy_http模块。同时,如果为apache设置了ProxyPass,则必须将ProxyRequests设置为Off。


ProxyPass [path] !|url [key=value key=value ...]]:将后端服务器某URL与当前服务器的某虚拟路径关联起来作为提供服务的路径,path为当前服务器上的某虚拟路径,url为后端服务器上某URL路径。使用此指令时必须将ProxyRequests的值设置为Off


ProxyPassReverse:用于让apache调整HTTP重定向响应报文中的Location、Content-Location及URI标签所对应的URL,在反向代理环境中必须使用此指令避免重定向报文绕过proxy服务器。


注:和ajp结合比http性能好


# service httpd configtest

# service httpd start


3、访问测试

221025534.png


配置多台tomcat实现负载均衡


1、修改配置文件

# cd /usr/local/apache/conf

# vim httpd.conf

前面配置相同,在最后添加

ProxyVia Off

ProxyRequests Off

ProxyPreserveHost Off

<proxy balancer://lbcluster1>

BalancerMember ajp://172.16.4.5:8009/

BalancerMember ajp://172.16.4.11:8009/

</proxy>

<Proxy *>

Require all granted

</Proxy>

ProxyPass / balancer://lbcluster1/

ProxyPassReverse / balancer://lbcluster1/

<Location / >

Require all granted

</Location>


2、配置完成重启服务并测试

#service httpd restart

221224480.png

221352183.png


到这里我们的服务就配置完成了




本文转自 宋鹏超 51CTO博客,原文链接:http://blog.51cto.com/qidian510/1303910,如需转载请自行联系原作者

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
Ubuntu Java 应用服务中间件
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
77 0
|
28天前
|
监控 网络协议 应用服务中间件
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
本文详细解析了Tomcat架构中复杂的`Connector`组件。作为客户端与服务器间沟通的桥梁,`Connector`负责接收请求、封装为`Request`和`Response`对象,并传递给`Container`处理。文章通过四个关键问题逐步剖析了`Connector`的工作原理,并深入探讨了其构造方法、`init()`与`start()`方法。通过分析`ProtocolHandler`、`Endpoint`等核心组件,揭示了`Connector`初始化及启动的全过程。本文适合希望深入了解Tomcat内部机制的读者。欢迎关注并点赞,持续更新中。如有问题,可搜索【码上遇见你】交流。
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
|
6天前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
18 4
|
6天前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
16 3
|
2月前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
70 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
2月前
|
负载均衡 前端开发 数据处理
"揭秘!ALB负载均衡器如何赋能Airflow,让数据处理命令请求在云端翩翩起舞,挑战性能极限,你不可不知的秘密!"
【8月更文挑战第20天】在现代云计算环境中,负载均衡ALB作为七层HTTP/HTTPS流量分发器,能显著提升系统的可用性和扩展性。结合Airflow这一开源工作流管理平台,ALB可以有效分发其REST API命令请求。通过配置ALB实例监听HTTP/S请求,并将多个Airflow实例加入目标组,再配合健康检查确保实例稳定,即可实现对Airflow命令的高效负载均衡,进而增强数据处理任务的可靠性和性能。
28 0
|
2月前
|
Ubuntu Java 应用服务中间件
在Ubuntu 16.04上安装Apache Tomcat 8的方法
在Ubuntu 16.04上安装Apache Tomcat 8的方法
25 0
|
2月前
|
安全 Java 应用服务中间件
在CentOS 7上安装Apache Tomcat 8的方法
在CentOS 7上安装Apache Tomcat 8的方法
87 0
|
2月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
146 0
|
2月前
|
Java 应用服务中间件 Apache
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
35 0

推荐镜像

更多