您的位置:首页 > 运维架构 > 反向代理

linux apache反向代理 tomcat

2011-03-31 18:00 302 查看
Apache HTTP server



Tomcat server

整合,一般是希望对于用户只公布

Apache HTTP server

的网址,而

Tomcat

的网址则不公布,扮演一个幕后英雄的角色。访问

Tomcat



HTTP

请求,通过

Apache

转发给

Tomcat



Tomcat

处理完后,将

HTTP

回应返回给

Apache

,然后

Apache HTTP

回应发回给用户端浏览器。

Apache HTTP server



Tomcat server

直接的

HTTP

数据传输,有很多种方法。

方法一,使用

mod_jk

。很多网站上介绍到

Apache
HTTP server



Tomcat server

整合的时候,都是在介绍

mod_jk.so

的使用,这是一种比较老的方法,并且需要额外下载

mod_jk



Apache



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

自带功能,并且配置比较简单。

yum
install gcc –y

wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.17.tar.gz
wget
http://www.oracle.com/technetwork/indexes/downloads/index.html
wget http://labs.renren.com/apache-mirror/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz
我是用一台服务器

做的

环境如下

Centos
5.5 64



16



cpu

32G

内存

Apache +
tomcat

(开启四个端口)

#ar zxvf http-2.2.17.tar.gz

#d httpd-2.2.17

#/configure --prefix=/usr/local/apache --enable-modules=so
--enable-mods-shared=all --enable-proxy --enable-proxy-connect
--enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp
--enable-proxy-balancer --enable-rewrite

#make ; make install

#cp support/apachectl /etc/init.d/httpd

#chmod 755 /etc/init.d/httpd

#vim /etc/init.d/httpd

#chconfig –add httpd

#chkconfig –level 345 httpd on

cd ..

chmod +x jdk-x64.bin

#

添加执行权限

./jdk-x64.bin

#

安装

jdk

mv jdk1.6.0_23/ /usr/java

vim /etc/profile

#

添加

java

环境变量

#Java Environment

JAVA_HOME=/usr/java

JAVA_BIN=/usr/java/bin

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

source /etc/profile

#java –version

java version
"1.6.0_23"

Java(TM) SE Runtime
Environment (build 1.6.0_23-b05)

Java HotSpot(TM) 64-Bit
Server VM (build 19.0-b09, mixed mode)

#tar zxvf apache-tomcat-7.0.8.tar.gz

#mv apache-tomcat-7.0.8 /usr/local/tomcat73

#vim /etc/profile

#

添加

tomcat

环境变量

TOMCAT_HOME=/usr/local/tomcat73

CATALINA_HOME=/usr/local/tomcat73

CATLINA_BASE=/usr/local/tomcat73

/usr/local/tomcat73/bin/catalina.sh start

#

添加启动脚本

export TOMCAT_HOME

CATALINA_HOME

CATALINA_BASH
TOMCAT_BIN

#source /etc/profile

LoadModule
proxy_module modules/mod_proxy.so

LoadModule
proxy_connect_module modules/mod_proxy_connect.so

LoadModule
proxy_http_module modules/mod_proxy_http.so

LoadModule
proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule
rewrite_module modules/mod_rewrite.so



apache

虚拟主机前边的

#

去掉

Include
conf/extra/httpd-vhosts.conf

添加

Include
conf/extra/httpd-vhosts.conf

如下

<VirtualHost *80>

ServerAdmin crazylinux@163.com

ProxyRequests Off

Proxypass /
balancer://proxy/

<Proxy
balancer://proxy>

Order Deny,Allow

Allow from all

BalancerMember http://127.0.0.1:8844
#tomcat

端口

(要用的端口,预设值的

可以随便设置)

BalancerMember http://127.0.0.1:8855
#tomcat

端口

BalancerMember http://127.0.0.1:8866
#tomcat

端口

BalancerMember http://127.0.0.1:8877
#tomcat

端口

</Proxy>

</VirtualHost>

保存修改

启动

apache

服务

#/usr/local/apache/bin/apachectl -k start

修改

tomcat

,添加虚拟主机

按端口走

8844 8855 8866
8877

按照预设值的

#vim /usr/local/tomcat73/conf/server.xml

只修改红色字体

<Service
name="Catalina0">

<Connector port="8044" protocol="AJP/1.3"
redirectPort="8443" />

<Connector port="
8844

" />

<Engine
name="Catalina0" defaultHost="localhost" jvmRoute="
jvm1

">

<Logger
className="org.apache.catalina.logger.FileLogger" />

<Realm
className="org.apache.catalina.realm.UserDatabaseRealm"

resourceName="UserDatabase" />

<Host
name="localhost" appBase="
webapps0

"
/>

</Engine>

</Service>

<Service
name="Catalina1">

<Connector port="8055" protocol="AJP/1.3"
redirectPort="8443" />

<Connector port="
8855

" />

<Engine
name="Catalina1" defaultHost="localhost" jvmRoute="
jvm2

">

<Logger
className="org.apache.catalina.logger.FileLogger" />

<Realm
className="org.apache.catalina.realm.UserDatabaseRealm"

resourceName="UserDatabase" />

<Host
name="localhost" appBase="
webapps1

"
/>

</Engine>

</Service>

<Service
name="Catalina2">

<Connector port="8066" protocol="AJP/1.3"
redirectPort="8443" />

<Connector port="
8866

" />

<Engine
name="Catalina2" defaultHost="localhost" jvmRoute="
jvm3

">

<Logger
className="org.apache.catalina.logger.FileLogger" />

<Realm
className="org.apache.catalina.realm.UserDatabaseRealm"

resourceName="UserDatabase" />

<Host
name="localhost" appBase="
webapps2

"
/>

</Engine>

</Service>

<Service
name="Catalina3">

<Connector port="8077" protocol="AJP/1.3"
redirectPort="8443" />

<Connector port="
8877

" />

<Engine
name="Catalina3" defaultHost="localhost" jvmRoute="
jvm4

">

<Logger
className="org.apache.catalina.logger.FileLogger" />

<Realm
className="org.apache.catalina.realm.UserDatabaseRealm"

resourceName="UserDatabase" />

<Host
name="localhost" appBase="
webapps3

"
/>

</Engine>

</Service>

然后

创建

tomcat web

目录在

/usr/local/tomcat73/

webapps0 webapps1 webapps2 webapps3

并在每个目录里面添加

index1.jsp

并添加

每个端口的对应号

启动

tomcat

#/usr/local/tomcat73/bin/start.sh

#/usr/local/apache/bin/apachetl –k restart

查看端口

netsant –ntlp

[root@localhost tomcat73]# netstat -ntlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address

Foreign Address

State

PID/Program name

tcp

0

0 0.0.0.0:964

0.0.0.0:*

LISTEN

2902/rpc.statd

tcp

0

0 0.0.0.0:111

0.0.0.0:*

LISTEN

2849/portmap

tcp

0

0 127.0.0.1:631

0.0.0.0:*

LISTEN

3155/cupsd

tcp

0

0 127.0.0.1:25

0.0.0.0:*

LISTEN

3178/sendmail: acce

tcp

0

0 127.0.0.1:6010

0.0.0.0:*

LISTEN

11977/1

tcp

0

0 :::8866

:::*

LISTEN

15836/java

tcp

0

0 :::8066

:::*

LISTEN

15836/java

tcp

0

0 ::ffff:127.0.0.1:8005

:::*

LISTEN

15836/java

tcp

0

0 :::8009

:::*

LISTEN

15836/java

tcp

0

0 :::8844

:::*

LISTEN

15836/java

tcp

0

0 :::8044

:::*

LISTEN

15836/java

tcp

0

0 :::8877

:::*

LISTEN

15836/java

tcp

0

0 :::8077

:::*

LISTEN

15836/java

tcp

0

0 :::80

:::*

LISTEN

15987/httpd

tcp

0

0 :::8080

:::*

LISTEN

15836/java

tcp

0

0 :::22

:::*

LISTEN

25432/sshd

tcp

0

0 :::8855

:::*

LISTEN

15836/java

tcp

0

0 :::8055

:::*

LISTEN

15836/java

tcp

0

0 ::1:6010

:::*

LISTEN

11977/1

看到了

80

8844 8855 8866 8877



tomcat

虚拟主机



apache

都启动了

访问下试试吧

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: