返回首页
当前位置: 主页 > 网络编程 > Jsp实例教程 >

如何使用apache反向代理tomacat

时间:2017-09-26 21:24来源:知行网www.zhixing123.cn 编辑:麦田守望者

在大部分的生产环境中,基本上使用的都是java程序,从而促进了各种应用程序中间件的产生,在这里大概有几种,tomcat作为最著名的开源servlet容器,jboss也是开源的,而且有管理界面,主要是redhat的,而weblogic则是oracle的商业中间件,而webspare则是IBM的商业中间件,其他的几个例如jetty,resin用的也就比较少了。

在安装tomcat的时候,每次首先需要安装的是jdk,提供jvm虚拟机,jre运行环境,从而每次安装jdk的时候,有几种选择,生产环境基本上使用的都是openjdk,不会产生版权的问题,在开发环境一般使用的是oracle的jdk。在安装完jdk之后,一般都要输出一个环境变量为JAVA_HOME。

在java中,JVM也分为几种,一种是oracle的JRokit虚拟机,主要是使用在weblogic上面;一种是IBM的J9虚拟机,主要使用在IBM的webspare中;一种则是Hotspot,主要使用在openJDK上面。

在生产环境中,servlet的变化为,tomcat——webspare——jboss,小的时候使用开源的,因为免费;慢慢变大,因为维护问题,变成收费;越来越大,又采取了开源,因为免费。前任使用的是weblogic

配置apache反代tomcat

在使用apache反向代理tomcat提供服务的时候,主要的请求模型如下所示:

apache

客户端浏览器发送http请求到apache,然后apache将用户的请求反响代理到后端的tomcat服务器之中,在apache进行反代的时候,可以使用http协议或者是ajp协议,而ajp协议的运行效率比http效率更高,从而一般使用的是ajp协议。

apache在进行反向代理的时候,必须存在几个模块,具体如下:

[root@mogilenode2 extra]# httpd -M |grep proxy

proxy_module (shared)

proxy_connect_module (shared)

proxy_ftp_module (shared)

proxy_http_module (shared)

proxy_scgi_module (shared)

proxy_ajp_module (shared)

proxy_balancer_module (shared)

Syntax OK

在进行编译安装的时候,默认是不会安装代理的模块的,从而在编译的时候可以添加选项,–enable-proxy,–enable-proxy-http,–enable-proxy-ajp,如果已经安装完成,也可以采用DSO的机制,使用命令apxs -ica mod_proxy.c来进行动态装载模块。

apache的主要配置文件如下:

[root@mogilenode2 extra]# cat httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot “/usr/local/apache/htdocs”

ServerName www.kel.com

ServerAlias kel.com

ProxyVia On

ProxyRequests Off

ProxyPreserveHost On

ProxyPass /status !

ProxyPass  / ajp://192.168.1.238:8009/

ProxyPassReverse  / ajp://192.168.1.238:8009/

#ProxyPass  / http://192.168.1.238:8080/

#ProxyPassReverse  / http://192.168.1.238:8080/

ErrorLog “logs/www.kel.com-error_log”

CustomLog “logs/www.kel.com-access_log” common

</VirtualHost>

<Location /status>

SetHandler server-status

Order allow,deny

Allow from all

</Location>

在配置文件中,主要参数分别介绍如下:ServerName表示主机名,主要用来区分虚拟主机,ProxyVia 主要是给http添加头部响应信息,表示经过了此apache服务器,ProxyRequests 主要是表示使用的正向代理还是反向代理,Off表示使用的是反响代理,ProxyPreserverHost表示是否将主机名反向代理给后端主机,当tomcat有多个虚拟主机的时候,需要开启,ProxyPass主要用来表示反响代理到后端的哪个主机,当使用感叹号的时候,表示不反代,由apache直接响应,需要反代的时候,需要写上后端的协议,主机名和端口号,ProxyPass主要是为了解决重定向的问题,其他的两个为日志信息,ServerAlias表示主机别名,用这个名称也可以进行访问,status主要是用来查看apache的状态页面信息。

查看tomcat的默认监听的进程:

[root@mogilenode3 ~]# ps -ef|grep java

root      3166     1  0 17:08 pts/0    00:00:25 /usr/java/latest/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

root      3219   863  0 18:00 pts/0    00:00:00 grep java

[root@mogilenode3 ~]# netstat -tnlp|grep java

tcp        0      0 :::8080                     :::*                        LISTEN      3166/java

tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      3166/java

tcp        0      0 :::8009                     :::*                        LISTEN      3166/java

[root@mogilenode3 ~]# pstree -p 3166|wc -l

40

顶一下
(1)
100%
踩一下
(0)
0%
标签(Tag):Apache 反向代理tomacat tomacat
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣