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,如需转载请自行联系原作者





相关文章
|
23天前
|
域名解析 网络协议 Linux
入职必会-开发环境搭建38-Linux常用操作-Linux设置IP
目前安装的Linux操作系统默认是动态获取IP地址,IP地址可能会发生变动,需要把IP地址设置为静态的。
入职必会-开发环境搭建38-Linux常用操作-Linux设置IP
|
4天前
|
Ubuntu Java 应用服务中间件
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
15 0
|
4天前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
9 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
2天前
|
存储 安全 Linux
说到Linux安全,SSH限制IP登录绕不开这3种方法!
说到Linux安全,SSH限制IP登录绕不开这3种方法!
|
4天前
|
Ubuntu Java 应用服务中间件
在Ubuntu 16.04上安装Apache Tomcat 8的方法
在Ubuntu 16.04上安装Apache Tomcat 8的方法
6 0
|
4天前
|
安全 Java 应用服务中间件
在CentOS 7上安装Apache Tomcat 8的方法
在CentOS 7上安装Apache Tomcat 8的方法
6 0
|
4天前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
17 0
|
4天前
|
Java 应用服务中间件 Apache
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
7 0
|
10天前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
21 0
|
15天前
|
应用服务中间件 Linux API
Linux 利用 Cloudflare API 配置 acme.sh 自动续签 SSL (Apache、Nginx适用)
安装acme.sh工具,命令为`curl https://get.acme.sh | sh -s email=你的邮箱`。接着配置Cloudflare API,创建并记录API令牌及Zone ID。最后通过`acme.sh --issue -d 你的域名 --dns dns_cf`签发SSL证书,对于Nginx可使用`acme.sh --install-cert`命令安装证书,并设置自动重载Nginx服务。