apache反向代理tomcat的两个代理模式及相关的会话保持配置示例

apache反向代理tomcat的两个代理模式及相关的会话保持配置示例,第1张

apache服务器默认可以将jsp动态内容通过proxy_http_module(此模块对应tomcat的8080端口)和proxy_ajp_module代理模块(此模块对应tomcat的8009端口)来将会话代理到tomcat服务器上做解析处理。此时的Apache只作为调度器,转发HTTP请求。然后等待tomcat服务器的HTTP响应,并转发给用户。Tomcat集群作为实际的服务器,则负责处理HTTP请求。

TomcatB服务器配置大体与TomcatA服务器差不多,只需修改index.jsp的内容为如下,其余的配置参考TomcatA的配置即可。

此时配置的结果应为同一个IP多次访问 http://192.168.0.81/test/ 能负载均衡到后端的两个tomcat主机之上。

ajp模式的配置与http模式的配置类似,但是在配置前需确认装载了相应的ajp模块。如果没有装载的话,需要另行编译安装。

此时配置的结果应为同一个IP多次访问 http://ajp.ilinux.io/test/ 能负载均衡到后端的两个tomcat主机之上。

修改此前的http和ajp模式的配置文件。

修改httpd对应的配置文件。

修改tomcat的server.xml文件。

配置完成后同一个IP多次访问 http://www.ilinux.io/test 都会被调度到同一个后端服务器去处理。

apache与tomcat 反向代理

首先,有client   proxy  server

正向代理:有多个client,想要访问server,这时client与proxy是一个lan,proxy将client的请求转发给server,server只知道有人来请求,但不知道是谁(因为被代理了)

反向代理:这时proxy与server是一个lan,client想要访问server,proxy将client的请求拿到,之后从server里挑了一个出来,应答给client,对于client来说,它以为自己是直接访问server,其实却是proxy经过操作后的结果。

正向代理代理客户端,反向代理代理服务端

反向代理好处:

1. 提升对静态文件的处理性能

2. 利用 Web 服务器来做负载均衡以及容错

3. 无缝的升级应用程序

这三点对一个 web 网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个 Tomcat

宕机或者是升级程序导致用户访问不了。

Apache与tomcat的反向代理有两种方案,一种方案是用mod_jk,另一种方案使用Apache2.2之后自带的模块prxoy,这边主要讲proxy。

关于proxy,有2种代理的方法,一种是用ajp_proxy,一种是http_proxy。从名字上就可以看出,这是两种不同协议的代理方式,因为同属于proxy模块,配置起来差别不大。

安装好Apache后,它有许多自带的模块是不开启的,我们想用proxy模块,需要自己开启它。Apache目录下的conf\httpd.conf,Apache在启动时会根据里面的内容自动加载模块,不需要加载的模块在里面是被注释掉的,我们要做的是把注释去掉

#---------------------start------------------------

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule speling_module modules/mod_speling.so

LoadModule proxy_html_module modules/mod_proxy_html.so

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

LoadModule buffer_module modules/mod_buffer.so

LoadModule cache_module modules/mod_cache.so

LoadModule cache_disk_module modules/mod_cache_disk.so

LoadModule xml2enc_module modules/mod_xml2enc.so

----------------------end---------------------

将Include conf/extra/httpd-vhosts.conf注解去掉

模块的具体作用详解Apache官网说明

之后修改 conf\extra\httpd-vhosts.conf

可以在这里面看到相应配置

serveradmin :当出错的时候显示管理员的邮箱地址

documentroot :设置Apache自己的本地目录地址,{SRVROOT}为相对地址,使用时还有修改<directory>,以获取目录权限,这2个在httpd.conf中修改,或者不修改,直接写自己的地址

servername:要代理的地址

serveralias :要代理的地址的别名

errorlog:错误日志地址

customlog :日志地址

<VirtualHost*:80>

ServerAdmin  husun@hotmail.com

ServerName localhost

ServerAlias localhost

ProxyPass   /ajp://127.0.0.1:8009/

ProxyPassReverse   /ajp://127.0.0.1:8009/

ErrorLog   "logs/lbtest-error.log"

CustomLog   "logs/lbtest-access.log"  common

注意:这里的8009是与tomcat中ajp协议端口号是一致的。这样就实现了在访localhost的时候,Apache将这个请求代理成了 127.0.0.1:8009。不过反向代理的主要作用是维护服务端的安全,所以要做负载均衡,如下图官网所示,下图不全,具体请到官网上看

我的,简单的负载均衡就完成了

loadfactor表示响应次数,例如9119响应一次,9219响应2次,这样算一轮,

proxyset是负载均衡算法的加载,这些算法有自己的模块,使用时要先加载。

官网链接:http://httpd.apache.org/docs/2.4/

负载均衡参考:https://blog.csdn.net/ranxiaoqian/article/details/58594504

两种方案三种方式:https://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/130997.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存