tomcat和Apache整合步驟(Apache设置反向代理供外网访问)

原创 2015年07月08日 19:11:38

Apache的默认端口是80,tomcat的默认端口是8080.想要既使用Apache处理静态网页,用tomcat处理动态的网页,就需要Apache和tomcat整合。Apache2.4.7自动集成了http的反向代理模块,稍微配置就行,Apache2.2没有集成websocket的模块,要想使用需要自己编译mod_proxy_wstunnel模块,具体编译步骤参考https://github.com/disconnect/apache-websocket和https://www.amoss.me.uk/2013/06/apache-2-2-websocket-proxying-ubuntu-mod_proxy_wstunnel/这里,但是推荐使用Apache2.4.7及以上版本。如果版本低建议升级。
模块

软件及版本:

操作系统:Ubuntu14.04 (64位)

Apache 2.4.7

tomcat 7.0.62

安装和环境变量配置这里不说了。网上很多,主要记录下整合的过程。

1.安装libapache2-mod-jk,

sudo apt-get install libapache2-mod-jk


2.打开/etc/apache2/mods-available/jk.conf文件修改,查看里面内容


可以看到JkWorkersFile /etc/libapache2-mod-jk/workers.properties 指向的是workers.properties文件

后面再加上

JkMount /rustezemyss/androidphone/ ajp13_worker
JkMount /rustezemyss/* ajp13_worker


ProxyRequests On
ProxyVia On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

<Location "/rustezemyss">
	ProxyPass http://127.0.0.1:8080/rustezemyss
	ProxyPassReverse http://127.0.0.1:8080/rustezemyss
</Location>

再编辑/etc/libapache2-mod-jk/workers.properties文件添加

worker.list = ajp13_worker,jk-status,jk-manager
worker.ajp13_worker.port=8080

worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.loadbalancer.balance_workers=ajp13_worker

如下图:




3.然后查看这个文件是否指向/etc/apache2/mods-available/jk.conf


4 .修改/etc/apache2/sites-available/000-default.conf

在里面添加

JkMount /rustezemyss/androidphone ajp13_worker
JkMount /rustezemyss/web ajp13_worker
JkMount /rustezemyss/ ajp13_worker
JkMount /rustezemyss/* ajp13_worker
JkMount /rustezemyss/*.* ajp13_worker
6.打开$TOMCAT_HOME/conf/server.xml 文件。

<Service name="Catalina">
     ...
    <!-- Define an AJP 1.3 Connector on port 8080 -->
    <Connector port="8080" protocol="AJP/1.3" redirectPort="8443" />
    ...
</Service>

7.重启apache和tomcat

8。在浏览器输入网址




8080端口和80端口是一样的。完成


查看apache错误日志

gedit /var/log/apache2/error.log

linux在防火墙中添加转发规则。80端口重定向为8080端口,-A是增加 

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

删除规则 -D是删除

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

目前只实现了http协议的反向代理

但是有一个很强大的websocket功能,反向代理还没实现好,目前还不知道怎么弄,好像需要重新编译apache,有一个插件https://github.com/disconnect/apache-websocket

但是我试了一下,编译有问题,找不到.h文件。而且Apache2.4.7好像本身就支持websocket反向代理,但是资料较少,目前还没有弄成功。有知道的朋友,请私信我,谢谢。

apachectl -v 查看apache版本号

查看已经被编译的模块:apachectl -l


apachectl -t -D DUMP_MODULES
查看apache加载模块


有时候,我们设置了反向代理,页面显示不正常是因为没有设置css,js等内容通过反向代理,或者找不到css、js等内容。设置方法是在httpd.conf或者000-default.conf中添加

ProxyPass /css/*.css !
ProxyPass /js/*.js !
ProxyPass /imag/*.png !
ProxyPass /swf/*.swf !
并且把css和js等内容放在www目录下。

另外查看apache收到的消息在/var/log/apache2下的access.log文件。查看错误日志是error.log



Apache 2.4.12支持 Websocket反向代理了,升级方法

sudo apt-add-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade



写个应用,可以实现长连接,点击close也不会出现500 internal error了。mark

相关文章推荐

Apache 配置 WebSocket 协议

本文使用 http proxy 方式 实现 apache 支持  WebSocket 请求(JK 使用的 ajp 协议不能支持websocket) 关于 http proxy 方式 请参考:http...

apache2.4+tomcat8反向代理集群

  • 2017年08月21日 17:18
  • 184KB
  • 下载

防恶意解析,禁止用IP访问网站的Apache设置+如何阻止网站被恶意反向代理访问

一般来说,网站可以用域名和IP来访问。你的网站可以通过IP直接访问,本来这没什么问题,但是会有些隐患: 由于搜索引擎也会收录你的IP地址的页面,所以同一个页面搜索引擎会重复收录,造成页面的权重不...
  • zqtsx
  • zqtsx
  • 2014年03月25日 11:03
  • 3061

apache两种方案三种方式实现反向代理tomcat

目录 1、概述 2、方案一:以proxy_module方式反向代理 3、方案二:以mod_jk方式反向代理 4、总结 1、概述 在前一博客( http://zhao...

windows与linux下apache+tomcat负载均衡部署。反向代理黏贴保证sessionID不变。

1    文档目的 C4项目apache+tomcat负载整理windows部署。 2    内容简介 本文主要包括以下内容: Ø  Apache的配置 Ø  Tomcat的配置 ...
  • wuapeng
  • wuapeng
  • 2015年07月27日 15:00
  • 185

使用Apache反向代理功能连接Tomcat实践

Apache HTTP server 和 Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一个幕后英雄的...

基于Apache做为Tomcat前端的架构实现反向代理&&负载均衡

一、连接器介绍 1、Tomcat连接器架构 基于Apache做为Tomcat前端的架构来讲,Apache通过mod_jk、mod_jk2或mod_proxy模块与后端的Tomcat进行数据交换。而...

Apache2.4+tomcat7.0 配置反向代理和负载均衡及session集群

在网上看了好多资料,都不完美,没有一篇能按照步骤,配置成功的,故写下自己配置成功的步骤: 配置环境: 系统win8(64位) JKD1.7     Apache2.4     tomcat7.0 ...

linux apache反向代理 tomcat

     Apache HTTP server 和 Tomcat server 整合,一般是希望对于用户只公布 Apache HTTP server 的网址,而 Tomcat 的网址则不公布,扮演一...

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

上文主要介绍了下集群和负载均衡的区别,本文主要介绍下实现原理,至于具体的apache负载均衡和tomcat的集群实现将会在以后的博文中文详细介绍,我这里再啰嗦下tomcat和apache的区别,apa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tomcat和Apache整合步驟(Apache设置反向代理供外网访问)
举报原因:
原因补充:

(最多只允许输入30个字)