当前位置: 技术问答>linux和unix
linux下apache与tomcat的整合
来源: 互联网 发布时间:2016-05-17
本文导语: 我使用jk整合apache和tomcat可以在编译jk源文件时发现有个文件找不到,文件是apax,./configure --with-apax=/usr/sbin/apxs中apax找不到,在什么地方可以找到apax文件,是不是要安装什么文件才会有apax??????? ...
我使用jk整合apache和tomcat可以在编译jk源文件时发现有个文件找不到,文件是apax,./configure --with-apax=/usr/sbin/apxs中apax找不到,在什么地方可以找到apax文件,是不是要安装什么文件才会有apax???????
|
获取 JK 模块
可以通过 apt-get 获取 JK 模块或直接从官方网站获取编译好的二进制模块, 但是编译JK一点也不麻烦, 这里我选择编译生成 JK 模块, 这有背 Debian 的方法 ;)
* 下载JK模块的源代码
JK的当前版本是 1.2.15, 运行下边的命令获取源代码:
$ wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.15/jakarta-tomcat-connectors-1.2.15-src.tar.gz
解压到临时目录:
# tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz -C /tmp/
* 配置编译环境
安装编译 JK 所需要的软件包:
#aptitude update
#aptitude install ibtool autoconf gcc apache2-prefork-dev g++
* 编译 JK 模块
在JK的解压目录下运行:
#cd /tmp/jakarta-tomcat-connectors-1.2.15-src/jk/native
#./configure --with-apxs=/usr/bin/apxs2
or
#./configure --with-apache=/etc/apache2
#make
详细的编译说明, 请参阅: Jakarta Tomcat Connector: Installation for Apache 2.x 将生成的 JK 模块 JK 复制到 /usr/lib/apache2/modules/
#cp ./apache-2.0/mod_jk.so /usr/lib/apache2/modules/
安装JK
直接下载已经编译好的mod_jk.so文件,如果不想编译,按以下步骤进行
下载JK源码http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/source/jk-1.2.15/
tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
./configure --with-apxs=/usr/local/apache2/bin/apxs
注:编译JK时软件的时候,运行./configure 会报错,错误提示为:
configure: error: C++ preprocessor "/lib/cpp" fails sanity
check See `config.log' for more details
解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行:
# yum install glibc-headers
# yum install gcc-c++
......
Installing: libstdc++-devel ######################### [1/2]
Installing: gcc-c++ ######################### [2/2]
......
cp apache-2.0/mod_jk.so /usr/local/apache2/modules/
在httpd.conf中增加
LoadModule jk_module modules/mod_jk.so
运行 /usr/local/apache2/bin/apachectl -t ,看看是否能正常加载各模块,如果有问题,它会自动提示,根据提示可方便地解决出现的问题。
至此,apache 2.2.8和jk的顺利安装成功。
3.使用apache和jk实现动静态请求分离
打开httpd.conf,在最后一行插入
Include conf/mod_jk.conf
在/usr/local/apache2/conf目录下
新建mod_jk.conf文件
# Where to find workers.properties
JkWorkersFile conf/workers2.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 请求分发配置,可以配置多项
JkMount /* loadbalancer
#关掉主机Lookup,如果为on,很影响性能,可以有10多秒钟的延迟。
HostnameLookups Off
新建workers2.properties文件
#此文件为负载平衡的配置文件,文件名不能修改,这是JK默认的名字
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=10.74.128.18 #本机,若上面Tomcat主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改
worker.list=ajp12
worker.ajp12.port=8009
worker.ajp12.host=10.74.128.20 #本机,若上面Tomcat主机不为localhost,作相应修改
worker.ajp12.type=ajp13 #类型
worker.ajp12.lbfactor=1 #代理数,不用修改
打开httpd.conf
注释掉以下语句:
#DocumentRoot "/usr/local/apache2/htdocs"
#
# Options FollowSymLinks
# AllowOverride None
# Order deny,allow
# Deny from all
#
去掉httpd-vhosts.conf的注释
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
运行/usr/local/apache2/bin/apachectl restart
完成。接下来试试集群的负载均衡
挂载samba驱动器
配置文件增加
[global]
dos charset = GB2312
unix charset = cp936
display charset = GB2312
另一台linux使用,这样就不会出错乱码了
mount -t cifs //10.74.128.21/www /mnt/web/ -o user=www,password=www,iocharset=cp936
可以通过 apt-get 获取 JK 模块或直接从官方网站获取编译好的二进制模块, 但是编译JK一点也不麻烦, 这里我选择编译生成 JK 模块, 这有背 Debian 的方法 ;)
* 下载JK模块的源代码
JK的当前版本是 1.2.15, 运行下边的命令获取源代码:
$ wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.15/jakarta-tomcat-connectors-1.2.15-src.tar.gz
解压到临时目录:
# tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz -C /tmp/
* 配置编译环境
安装编译 JK 所需要的软件包:
#aptitude update
#aptitude install ibtool autoconf gcc apache2-prefork-dev g++
* 编译 JK 模块
在JK的解压目录下运行:
#cd /tmp/jakarta-tomcat-connectors-1.2.15-src/jk/native
#./configure --with-apxs=/usr/bin/apxs2
or
#./configure --with-apache=/etc/apache2
#make
详细的编译说明, 请参阅: Jakarta Tomcat Connector: Installation for Apache 2.x 将生成的 JK 模块 JK 复制到 /usr/lib/apache2/modules/
#cp ./apache-2.0/mod_jk.so /usr/lib/apache2/modules/
安装JK
直接下载已经编译好的mod_jk.so文件,如果不想编译,按以下步骤进行
下载JK源码http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/source/jk-1.2.15/
tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
./configure --with-apxs=/usr/local/apache2/bin/apxs
注:编译JK时软件的时候,运行./configure 会报错,错误提示为:
configure: error: C++ preprocessor "/lib/cpp" fails sanity
check See `config.log' for more details
解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行:
# yum install glibc-headers
# yum install gcc-c++
......
Installing: libstdc++-devel ######################### [1/2]
Installing: gcc-c++ ######################### [2/2]
......
cp apache-2.0/mod_jk.so /usr/local/apache2/modules/
在httpd.conf中增加
LoadModule jk_module modules/mod_jk.so
运行 /usr/local/apache2/bin/apachectl -t ,看看是否能正常加载各模块,如果有问题,它会自动提示,根据提示可方便地解决出现的问题。
至此,apache 2.2.8和jk的顺利安装成功。
3.使用apache和jk实现动静态请求分离
打开httpd.conf,在最后一行插入
Include conf/mod_jk.conf
在/usr/local/apache2/conf目录下
新建mod_jk.conf文件
# Where to find workers.properties
JkWorkersFile conf/workers2.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 请求分发配置,可以配置多项
JkMount /* loadbalancer
#关掉主机Lookup,如果为on,很影响性能,可以有10多秒钟的延迟。
HostnameLookups Off
新建workers2.properties文件
#此文件为负载平衡的配置文件,文件名不能修改,这是JK默认的名字
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=10.74.128.18 #本机,若上面Tomcat主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改
worker.list=ajp12
worker.ajp12.port=8009
worker.ajp12.host=10.74.128.20 #本机,若上面Tomcat主机不为localhost,作相应修改
worker.ajp12.type=ajp13 #类型
worker.ajp12.lbfactor=1 #代理数,不用修改
打开httpd.conf
注释掉以下语句:
#DocumentRoot "/usr/local/apache2/htdocs"
#
# Options FollowSymLinks
# AllowOverride None
# Order deny,allow
# Deny from all
#
去掉httpd-vhosts.conf的注释
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
运行/usr/local/apache2/bin/apachectl restart
完成。接下来试试集群的负载均衡
挂载samba驱动器
配置文件增加
[global]
dos charset = GB2312
unix charset = cp936
display charset = GB2312
另一台linux使用,这样就不会出错乱码了
mount -t cifs //10.74.128.21/www /mnt/web/ -o user=www,password=www,iocharset=cp936