- 准备工作
确保服务器安装了g++、gcc、jdk,命令如下
g++ --version
gcc --version
java -version
下载apache:http://httpd.apache.org/download.cgi 这里用httpd-2.2.26.tar.gz
下载tomcat:http://tomcat.apache.org/download-70.cgi 这里用apache-tomcat-7.0.50.tar.gz
下载jk:http://tomcat.apache.org/download-connectors.cgi 这里用tomcat-connectors-1.2.37-src.tar.gz
- apache安装
安装命令
tar zxvf httpd-2.2.26.tar.gz
cd httpd-2.2.26
./configure --prefix=/home/apache --enable-so --enable-mods-shared=most --with-mpm=worker
make && make install
启动命令
cd /home/apache/bin
./apachectl start
停止命令
killall httpd
访问http://127.0.0.1,返回It works! 说明apache安装成功。
安装过程中可能会报apr和apr-util没找到,需要先安装这两个包。
下载地址http://apr.apache.org/download.cgi
安装命令
tar -xf apr-1.5.0.tar.gz
cd apr-1.5.0
./configure
make && make install
tar -xf apr-util-1.5.3.tar.gz
cd apr-util-1.5.3
./configure --with-apr=/usr/local/apr
make && make install
- jk安装
安装命令
tar zxvf tomcat-connectors-1.2.37-src.tar.gz
cd tomcat-connectors-1.2.37-src/native
./configure --with-apxs=/home/apache/bin/apxs
make
编译完成后可以在/home/tomcat-connectors-1.2.37-src/native/apache-2.0下找到mod_jk.so文件
将该文件复制到apache的modules目录下面
- tomcat安装
安装命令
tar zxvf apache-tomcat-7.0.50.tar.gz
启动命令,进入tomcat的bin目录
./startup.sh
停止命令,进入tomcat的bin目录
./shutdown.sh
- 配置http请求转发
这里以apache转发到一个tomcat为例
修改apache/conf下的httpd.conf文件,加入LoadModule jk_module modules/mod_jk.so
并且添加jk模块:
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
</IfModule>
在conf目录下添加workers.properties
#server 列表
worker.list=tomcats,jk_watcher,tomcat09
#controller(负载均衡控制器)
worker.tomcats.type=lb
#指定分担请求的tomcat
worker.tomcats.balanced_workers=tomcat09
#粘性session
#表示从同一窗口发来的请求都将有集群中的同一个tomcat进行处理。配置方式是在上面workers.properties文件
worker.tomcats.sticky_session=1
worker.retries=3
worker.jk_watcher.type=status
# tomcat09(ajp13 8009)
worker.tomcat09.port=8009
#tomcat 的主机地址,如不为本机,请填写ip地址
worker.tomcat09.host=127.0.0.1
worker.tomcat09.type=ajp13
#server 的加权比重,值越高,分得的请求越多
worker.tomcat09.lbfactor=1
worker.tomcat09.socket_keepalive=true
worker.tomcat09.socket_timeout=20
worker.tomcat09.connection_pool_size=1000
worker.tomcat09.connection_pool_minsize=250
worker.tomcat09.connection_pool_timeout=600
这里在worker.list添加了三个tomcat。tomcats是做集群用的, jk_watcher是apache监控页面,tomcat09是本机tomcat。
在conf目录下添加uriworkermap.properties
/test/*=tomcat09
/test=tomcat09
/jkstatus=jk_watcher
里面配置了url的请求转发给哪个tomcat。
所有test工程的请求都交给了tomcat09,tomcat09启动了ajp的8009端口接收apache的转发。
/jkstatus=jk_watcher是监控页面的url。可以通过http://127.0.0.1/jkstatus访问监控页面。
修改tomcat的server.xml配置文件,将原来开发的http端口8080注释,开发ajp的端口8009
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
启动apache和tomcat,可以测试所有的转发。
- 配置https请求转发
上面配置的都是http请求转发。要配置https请求转发需要用到apache的ssl模块。apache需要开发https的端口443。依旧是转发到tomcat的ajp端口。
apache安装ssl模块需要先下载OpenSSL
下载地址:http://www.openssl.org/ 这里用的是openssl-0.9.8l.tar.gz
tar zxvf openssl-0.9.8l.tar.gz
cd openssl-0.9.8l
./config
make && make install
最后默认安装在/usr/local/ssl目录下面。
需要重新安装apache,并启动ssl模块。
安装apache就多了下面红字部分,其他不变。
./configure --prefix=/home/apache --enable-ssl=static --with-ssl=/usr/local/ssl --enable-so --enable-mods-shared=most --with-mpm=worker
在apache的httpd.conf里面去掉如下行的注释
Include conf/extra/httpd-ssl.conf
修改的以下几项
ServerName:修改成当前主机的ip或域名
修改SSLCertificateFile "/home/apache/conf/server.crt"
SSLCertificateKeyFile "/home/apache/conf/server.key"
server.crt和server.key的生成参考http://ye-liang.iteye.com/blog/2003057
所有路径改成当前apache路径,如果apache是用命令安装的话,路径不变。
在文件最后添加JkMount /test/* tomcat09
最后启动apache,访问https://127.0.0.1/