Apache2.4+Tomcat集群_反向代理配置

Apache2.4+Tomcat集群_反向代理配置

测试环境:Apache反代做为前端反向代理,后端任意,此处我用做windwos,其实linux与windwos配置原理都一样,只是根据公司需求来做。

需求:        要求基于ssl访问,

301域名跳转,

session sticky方式来接收请求,

有故障隔离的作用,以至于在其中一台上线时可以把用户请求转发到另一台。

1.资源下载:

Apache(windows安装包)下载路径

http://www.apachelounge.com/download/

VC14运行库.下载地址

64位下载

http://download.microsoft.com/download/9/E/1/9E1FA77A-9E95-4F3D-8BE1-4D2D0C947BA2/enu_INREL/vcredistd14x64/vc_redist.x64.exe

32位下载

http://download.microsoft.com/download/9/E/1/9E1FA77A-9E95-4F3D-8BE1-4D2D0C947BA2/enu_INREL/vcredistd14x86/vc_redist.x86.exe

2.资源上传

上传资源至服务器e:/tmp

3.依赖工具安装

安装vc_redist工具:

点安装-->

4.安装Apache2.4

4.1减压到E:/Apache24

4.2修改配置文件路径conf/httpd.conf

4.3找到默认218行把# ServerName www.example.com:80

换成ServerName www.wyy.com:80

4.4测试正常启动

4.5加入系统服务

4.6启动程序ApacheMonitor.exe -->start

4.7查看Apache是否正常访问

5.配置apache反向代理功能

黏贴性session的问题解决

5.1修改配置文件conf/http.conf

取消以下模块的注释 #

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModulelbmethod_byrequests_modulemodules/mod_lbmethod_byrequests.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule headers_module modules/mod_headers.so

LoadModule ssl_module modules/mod_ssl.so

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

5.2再末尾加入以下代码:

# AJP13 Proxy

<IfModule mod_proxy.c>

<IfModule mod_proxy_ajp.c>

Include "conf/extra/httpd-ajp.conf"

</IfModule>

</IfModule>

<Location /balancer-manager>

SetHandler balancer-manager

Order Deny,Allow

Allow from all

</Location>

5.3在conf/extra下创建httpd-ajp.conf

写入以下代码:

<Proxy *>

Require all granted

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED

</Proxy>

ProxyPass /test balancer://rqbao_cluster/ stickysession=ROUTEID

ProxyRequests Off

<Proxy balancer://rqbao_cluster>

BalancerMember ajp://10.1.1.252:8009 route=tomcat1 ping=3

BalancerMember ajp://10.1.1.253:9009 route=tomcat2 ping=3

</Proxy>

6.开启Apache的https功能

6.1打开 httpd.conf 文件开启ssl功能

Include conf/extra/httpd-ssl.conf

6.2打开extra/httpd-ssl.conf文件修改文件内容路径

6.3默认125行改为自己的域名或者ip地址

ServerName www.wyy.com:443

6.4默认144、154、165

改为:

SSLCertificateFile "e:/Apache24/conf/webCert.cer"

SSLCertificateKeyFile "e:/Apache24/conf/server.key"

SSLCertificateChainFile "e:/Apache24/conf/ruiqianbao.pem"

6.5把e:/tmp下的webCert.cer、server.key、ruiqianbao.pem这3个文件放到Apache下的conf目录里

测试配置文件

最后restart Apache 服务

完成!

7.开启Apache的301地址跳转功能

开启LoadModule rewrite_module modules/mod_rewrite.so

根据要跳转的域名加入以下代码:

##############301域名跳转#########

RewriteEngine On

RewriteCond %{http_host} bbs.wyy.com  [NC]

RewriteRule ^(.*)$ https://www.wyy.com [L,R=301]

RewriteEngine On

RewriteCond %{http_host} blog.wyy.com  [NC]

RewriteRule ^(.*)$ http://www.wyy.com [L,R=301]

RewriteEngine On

RewriteCond %{http_host} www.wyy.com.net  [NC]

RewriteRule ^(.*)$ http://www.wyy.com [L,R=301]

8.测试!

7.1在Tomcat根目录创建test.jsp测试文件

加入以下代码:

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

<html><head><title>Cluster Test</title></head>

<body>

<%

//HttpSession session = request.getSession(true);

System.out.println(session.getId());

out.println("<br> SESSION ID:" + session.getId()+"<br>");

// 如果有新的请求,则添加session属性

String name = request.getParameter("name");

if (name != null && name.length() > 0) {

String value = request.getParameter("value");

session.setAttribute(name, value);

}

out.print("<b>Session List:</b>");

Enumeration<String> names = session.getAttributeNames();

while (names.hasMoreElements()) {

String sname = names.nextElement();

String value = session.getAttribute(sname).toString();

out.println( sname + " = " + value+"<br>");

System.out.println( sname + " = " + value);

}

%>

<form action="testCluster.jsp" method="post">

名称:<input type=text size=20 name="name">

<br>

值:<input type=text size=20 name="value">

<br>

<input type=submit value="提交">

</form>

</body>

</html>

7.2 http://10.1.1.252/balancer-manager监控页面

时间: 2024-08-04 13:21:26

Apache2.4+Tomcat集群_反向代理配置的相关文章

Tomcat集群+Nginx反向代理+负载均衡

Tomcat集群 所谓tomcat集群,就是向外提供并行服务的多台机器,任何一台服务器宕机,其他服务器还可以代替它向外提供服务,从而不影响用户访问 为了提高tomcat集群的高可用性,还需要实现nginx的双机热备. 反向代理 以代理服务器来接受外网的连接请求,然后将请求转发给内网上的服务器,并将从服务器上得到的结果返回给外网请求的客户端. nginx是一个常用的反向代理服务,可以自定义模块,实现请求转发以及负载均衡(根据具体采用的策略有关). 负载均衡 策略: 轮询(默认) 每个请求按照时间顺

Tomcat集群的session复制配置

此处我们采用的是在一台服务器上配置3台Tomcat,为了达到访问任何一台Tomcat都共享session的目的,我们这里采用Tomcat在集群中的session复制,以下是具体的配置 1.我们将Tomcat复制3份,更改名字为Tomcat1.Tomcat2.Tomcat3,修改每个Tomcat中的Server节点端口分别为8005.8006.8007 1 #Tomcat1 2 <Server port="8005" shutdown="SHUTDOWN">

nginx tomcat 集群与负载均衡配置实例

一.nginx tomcat 中用到的概念介绍 1.反向代理,当客户端的请求到来之后,反向代理接收这个请求然后将这个请求转发到后台的服务器上,如果做负载均衡的话,就会将这个请求分发到负载均衡的那些服务器上去. 正向代理端代理的是客户端 反向代理代理的是服务端.请求这个反向代理服务器,就好比是直接请求资源所在的服务端. 2.这里说到的负载均衡,就是nginx接收到客户端的请求之后将这些请求按照自己配置的方式分发给后台服务器(tomcat服务器),分发方式有轮回方式,weight 配置权重,权重越大

Nginx SSL+tomcat集群,request.getScheme() 取到https正确的协议

转自:http://feitianbenyue.iteye.com/blog/2056357 最近在做一个项目, 架构上使用了 Nginx +tomcat 集群, 且nginx下配置了SSL,tomcat no SSL,项目使用https协议 但是,明明是https url请求,发现 log里面, Xml代码   0428 15:55:55 INFO  (PaymentInterceptor.java:44) preHandle() - requestStringForLog:    { "re

Tomcat集群session复制,httpd/nginx反代Tomcat集群

   一个大型站点都会涉及到动态应用,动态应用都需要做会话保持,常见的会话保持方式就三种,一是session stick,二是session replication,三是session share,对于小型规模的tomcat集群,大多者会采用session replication方式,但阅读官方文档也好,查询大牛博客也罢,发现均有不准确之处,所以亲测成功实现之后得出如下文档,还望高人指点. 实验环境: 操作系统:CentOS 7.2 tomcat版本:tomcat-7.0.54(yum安装方式)

Nginx SSL+tomcat集群,取不到https正确协议

最近在做一个项目, 用到企业微信,架构上使用了 Nginx +tomcat 集群, 且nginx下配置了SSL,tomcat no SSL,项目使用https协议,但是在调试微信菜单的相关功能时却发现报错,报错信息如下: 经过调试dofilter里面的代码,发现: 浏览器中输入的URL是 https://shaidh.dhwrwi.com/dheu/syuu.do 但是打断点调试request.getRequestURL() 输出来的 一直是  http://shaidh.dhwrwi.com/

Apache反向代理结合Tomcat集群来实现负载均衡(四)、Apache反向代理

上文中主要介绍了tomcat的集群方式,下边再来说下apache的反向代理.反向代理可以这样来理解,我们通常认为的代理(正向代理)是局域网内部机器本身不能上网,网关可以上网,大家在局域网内是通过网关上网的,这个网关就是个代理机器.反向代理意思就反了过来,现在网关并不是给内部局域网做代理的,而是给外部请求内部局域网做代理的,例如,当前一个应用系统在局域网内的A机器上,外部网络不能直接访问A机器,而是通过网关访问到了A,这里网关就是个反向代理了. 总结:正向代理---为在防火墙内的局域网客户端提供I

Apache反向代理结合Tomcat集群来实现负载均衡(一)

好的博文一般都能做到"望题知文",看下标题就知道下边要讲的内容,写这个标题时犹豫了一下,本来要将标题定位apache+tomcat实现负载均衡,可是又觉得这样显得比较模糊,后来想了一下,觉得利用Apache做负载均衡底层结合的是tomcat的集群功能,所以便用了这个标题. 首先先做下集群与负载均衡的概念区分,很多人一直都不理解这两个概念,不知道该如何区分这两个概念,又觉得这两个概念仿佛是一个技术的两个术语,其实不然,下边介绍下这两个概念: 什么是集群(Cluster) 所谓集群是指一组

使用Apache通过JK实现多Tomcat负载均衡集群时,Apache不能将请求分发给Tomcat处理(即Apache反向代理不成功)的问题

前些天在做Apache通过JK实现多Tomcat负载均衡集群时,参考网上的配置将配置文件配置好后,访问已存在tomcat中的JSP文件时发现Apache提示URL不存在,然后检查了配置文件及tomcat工程部署,发现配置部署均无问题.尝试访问Apache静态页面,通过http单独访问tomcat均无问题.然后我猜会不会之前参考的网上的配置有问题,于是继续查询网上其它配置发现都差不多,尝试更改各种参数均没有解决.后来我仔细想了想出现这个问题的原因应该是Apache没有将HTTP请求分发给Tomca