linux 下apache反向代理 tomcat

一、实验说明

Apache HTTP server Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一个幕后英雄的角色。访问 Tomcat HTTP 请求,通过 Apache 转发给 TomcatTomcat 处理完后,将 HTTP 回应返回给 Apache,然后 Apache  HTTP 回应发回给用户端浏览器。

Apache HTTP server Tomcat server 直接的 HTTP 数据传输,有很多种方法。

方法一,使用 mod_jk。很多网站上介绍到 Apache HTTP server Tomcat server 整合的时候,都是在介绍  mod_jk.so 的使用,这是一种比较老的方法,并且需要额外下载 mod_jkApache Tomcat 的默认配置文件都需要改动。

方法二 URL rewrite,也就是对于指定格式的 URL,转发给某个 Tomcat 的网址。这里所说的指定格式,是指 Apache 所使用的正则表达式,通俗地将,是一种类似 * 的一种比较高级通配符。这种方法不需要下在额外的文件,只需要配置 Apache

方法三mod_proxy_ajp,仅在 Apache 2.1 及以后的版本中可用,Apache 自带的一个新功能模块。这时 Apache 使用 Apache JServ Protocol Tomcat 通讯。不需要下在额外的文件,需要改动Apache Tomcat 的默认配置文件都需要改动。

方法四mod_proxy。其实 mod_proxy 既可以做类似于 Wingate 一样的公司局域网共享上网代理,也可以做反向代理(Reverse proxy)。这里使用的是反向代理功能,用户端浏览器不需要把代理服务器改成这里的 Apache 地址。mod_proxy Apache 自带功能,并且配置比较简单。

 

二、实验环境

下面我选择方法四,配置简易不复杂:

我是用两台服务器做的环境如下:

Red hat 6.2 64 IP地址192.168.2.10和192.168.2.12

Apache部署在10那台服务器上,tomcat分别部署在两个服务器上

 

三、实验步骤

yum install –y gcc httpd

 

[端口转发配置]

通过http_proxytomcat的端口转发:

描述:将远程服务器映射到本地服务器的URL空间

语法:ProxyPass [路径] !|url [=值键= ...]] [nocanon]

上下文:server config, virtual host, directory

状态:扩展

模块:mod_proxy

配置httpd.conf

#保证以下模块加载

LoadModuleproxy_module modules/mod_proxy.so

LoadModuleproxy_http_module modules/mod_proxy_http.so

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

 

#配置ProxyPass

 vi /etc/httpd/conf/httpd.conf 
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName 192.168.2.10
    ProxyPreserveHost On  
   ProxyPass /one http://192.168.2.10:8080/one
   ProxyPassReverse /one http://192.168.2.10:8080/one
    ProxyPreserveHost On
    ProxyPass /two http://192.168.2.12:8082/two
   ProxyPassReverse /two http://192.168.2.12:8082/two
</VirtualHost>


service httpd resload


本文出自 “运维笔录 美玲” 博客,请务必保留此出处http://meiling.blog.51cto.com/6220221/1559458

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。