使用jk_module整合MyEclipse内置Tomcat到Apache、实现多域名、解决Cookie值丢失有关问题

使用jk_module整合MyEclipse内置Tomcat到Apache、实现多域名、解决Cookie值丢失问题

JK

JK 本身有两个版本分别是 1 和 2,目前 1 最新的版本是 1.2.19,而版本 2 早已经废弃了,以后不再有新版本的推出了,所以建议你采用版本 1。

注意JK的每个版本都对应一个apache版本。Jk下载可以直接到apache.org官网下载,有多种版本,适用于各种操作系统,地址如下:

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

本文以 win32/jk-1.2.28/mod_jk-1.2.28-httpd-2.2.3.so 为例

下载完JK的so模块后,放在${APACHE_HOME}\modules\mod_jk.so

Apache2.2 配置

打开配置文件:${APACHE_HOME}\conf\httpd.conf

在配置文件最后加入以下加载JK的内容:

#加载jk模块

LoadModule jk_module modules/mod_jk.so

#设定jk workers配置文件

JkWorkersFile conf/workers.properties

#jk log文件

JkLogFile logs/mod_jk.log

#jk log级别

JkLogLevel warn

#设置网站虚拟主机

<VirtualHost *:80>

#域名和映射

ServerName www.mywebsite.com

ServerAlias www.mywebsite.com

#网站根 (应该指向程序源代码的webRoot目录,这里的例子应用的webRoot目录就是应用根目录)

DocumentRoot “F:/workspace/MyEclipse7/mywebsite”

#主页面

DirectoryIndex index.jsp

#错误日志

ErrorLog logs/mywebsite_error_log.txt

#自定义访问日志

CustomLog logs/mywebsite_access_log.txt common

#jk mount映射文件

JkMountFile conf/mywebsite_uriworkermap.properties

#也可以在这里直接写映射关系,如:

#JkMount /*.jsp myworkerName

</VirtualHost>

在上面的配置中,使用到两个配置文件,这两个文件就是JK的主要配置文件:

到 Tomcat 服务器的连接定义文件

conf/workers.properties

URI 映射文件,用来指定哪些 URL 由 Tomcat 处理

conf/mywebsite_uriworkermap.properties

在${APACHE_HOME}\conf\目录下,创建这两个文件。

JK配置

1.打开 ${APACHE_HOME}\conf\workers.properties 文件,写入以下内容:

worker.list=myeclipseTomcat, status

# list the workers by name

# localhost server 1

# ————————

worker.myeclipseTomcat.port=8009

worker.myeclipseTomcat.host=localhost

worker.myeclipseTomcat.type=ajp13

#status worker, listening jk’s status

worker.status.type=status

上面内容中的worker.list指定了当前可用的两个worker:myeclipseTomcat和status;

worker.myeclipseTomcat.*配置的正是是myeclipse中内置的Tomcat。

worker.status配置了一个用来监控 JK 本身工作状况的模块。

这里可以用更复杂的配置来实现Tomcat分布式、以及负载均衡(load banlace),本文不作深入讨论。

注意:worker.myeclipseTomcat的设定不能简单的填写浏览器中可访问的host和端口;

如果配置完毕后出现JK无法连接到tomcat的情况,就需要参考Tomcat配置文件:

${TOMCAT_HOME}/conf/server.xml 中,关于Connector的配置信息。

以我这里的server.mxl配置为例,其中配置了两个Connector:

<Connector connectionTimeout=”20000″ port=”88″ protocol=”HTTP/1.1″ redirectPort=”8443″/>

<Connector connectionTimeout=”20000″ port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″/>

不难看出,88端口的Connector只面向http协议,而真正面向JK的是使用AJP13协议的8009这个端口。

所以在上面JK的worker配置内容中,port应该是8009,而不是通过浏览器可访问的88端口。

2.打开 ${APACHE_HOME}\conf\mywebsite_uriworkermap.properties 文件,写入以下内容:

/jkstatus=status

#following types will NOT be proccessed by tomcat

!/*.gif=myeclipseTomcat

!/*.jpg=myeclipseTomcat

!/*.png=myeclipseTomcat

!/*.css=myeclipseTomcat

!/*.js=myeclipseTomcat

!/*.htm=myeclipseTomcat

!/*.html=myeclipseTomcat

!/*.swf=myeclipseTomcat

#other types will be given to tomcat

/*=myeclipseTomcat

在以上内容中:

/jkstatus=status :配置了一个URL,随后访问http://www.mywebsite.com/jkstatus就可以查看到JK的运行状态。

!/*.gif=myeclipseTomcat :设定*.gif类型的文件直接由apache进行处理,不通过tomcat。(apache处理静态内容的效率比tomcat高很多)

/*=myeclipseTomcat :其他类型的请求都有tomcat进行处理。

以上配置可参考资料:http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html

MyEclipse的TOMCAT配置

MyEclipse安装后,内置的Tomcat默认是enable的。可以在”Servers“选项页看到。

内置Tomcat的默认根目录在:${WORKSPACE}\.metadata\.me_tcat\

${WORKSPACE}就是MyEclipse默认的Workspace目录。

打开${TOMCAT_HOME}\conf\server.xml文件,

在<Engine defaultHost=”localhost” name=”Catalina”>小节中,加入以下内容:

<Host name=”www.mywebsite.com” autoDeploy=”true” unpackWARs=”true” xmlNamespaceAware=”false

使用jk_module整合MyEclipse内置Tomcat到Apache、实现多域名、解决Cookie值丢失有关问题

相关文章:

你感兴趣的文章:

标签云: