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
都启动了
访问下试试吧
和
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
都启动了
访问下试试吧
相关文章推荐
- linux apache反向代理 tomcat
- linux apache反向代理 tomcat
- linux apache反向代理 tomcat
- Linux系统下塔建Apache和Tomcat负载均衡集群
- Linux下apache httpd+tomcat整合步骤
- Linux Apache集成Tomcat 动静分离与垂直集群(域名绑定)
- 在Linux下进行Apache+tomcat整合
- Linux下jsp开发环境,apache,tomcat服务器配置过程:
- linux下安装apache-tomcat-7.0.2.tar.gz
- 阿里云-ECS-apache-tomcat-安装-linux
- linux下配置apache2.2+tomcat6的虚拟主机配置之tomcat-connectors
- Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程
- 浅谈apache和tomcat在linux下的整合
- Integrating Tomcat and Apache on Red Hat Linux 9 or Red Hat Enterprise Linux 3
- Linux下安装Tomcat及融合Apache
- [转载]Linux下Apache与Tomcat整合的简单方法
- 搭建linux下apache-tomcat
- Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程
- Linux下jsp情况:apache,tomcat设置装备安排-1
- Linux下Apache与Tomcat整合的简单方法