linux 下apache反向代理tomcat,及解决内网IP问题

简介:

一、实验说明

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

1
2
3
4
5
6
7
8
9
10
11
12
  vi  /etc/httpd/conf/httpd .conf 
<VirtualHost *:80>
     ServerAdmin webmaster@jsoft.cn
     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


四、反向代理 出现内网IP问题


解决方法,在配置反向代理的时候加上一行:

ProxyPreserveHost On 


例如:

ProxyPreserveHost On    #在这里加即可

ProxyPass /one http://192.168.2.10:8080/one
ProxyPassReverse /one http://192.168.2.10:8080/one

 



      本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/1559458,如需转载请自行联系原作者





相关文章
|
3月前
|
Ubuntu Java 应用服务中间件
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
95 0
|
1月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
33 4
|
1月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
37 3
|
3月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
3月前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
222 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
3月前
|
Linux Apache
在Linux中,apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
在Linux中,apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
|
3月前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何查看Apache或Nginx服务的状态?
在Linux中,如何查看Apache或Nginx服务的状态?
|
3月前
|
Ubuntu Java 应用服务中间件
在Ubuntu 16.04上安装Apache Tomcat 8的方法
在Ubuntu 16.04上安装Apache Tomcat 8的方法
35 0