`
zyslovely
  • 浏览: 231608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用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" xmlValidation="false"></Host>
这是一个虚拟主机设定,通过域名访问应用的时候tomcat会根据这里的设定去寻找这个主机的config文件。
而上面设定的主机的config文件在约定的目录:
${TOMCAT_HOME}\conf\Catalina\www.mywebsite.com\ROOT.xml

如果没有这个文件,创建对应的目录结构,然后在目录下面创建这个文件,
打开www.mywebsite.com\ROOT.xml,加入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="F:/workspace/MyEclipse7/mywebsite"/>
这行内容指定了www.mywebsite.com域名指向的网站目录,应该填写应用的webRoot目录(当前例子的webRoot目录就是应用根目录)
这部分的配置可参考资料:http://www.blogjava.net/sealyu/archive/2008/08/25/224326.html

配置完毕后,在MyEclipse的”Servers“选项页重启Tocmat服务器、重启Apache服务器。

如果这个域名的dns还未生效,就在 WINDOWS\system32\drivers\etc\hosts 文件中增加一条映射:
127.0.0.1    www.mywebsite.com

重启服务器后,如果服务器运行正常,就可以打开浏览器访问 www.mywebsite.com 测试了。

在使用JK后,程序向客户端写入的某些Cookie值丢失?虽然比较罕见,我就遇上了。
经过各种尝试,发现是因为我写入的Cookie内容中含有换行符号,将换行符号替换成其他字符以后,Cookie工作正常,特此记录备忘。
分享到:
评论

相关推荐

    blog.zip_blog_blog mysql_myeclipse_myeclipse mysql_mysql tomcat

    《构建基于MyEclipse、Tomcat与MySQL的简易博客系统》 ...通过此项目,开发者不仅能熟练掌握MyEclipse与Tomcat的集成使用,还能深入理解MySQL数据库在Web应用中的作用,以及如何实现一个基本的博客系统。

    BBS.rar_MyEclipse tomcat_MyEclipse BBS_bbs jsp_myeclipse b_s2s

    我们可以学习到如何在MyEclipse中设置和管理项目,如何配置Tomcat服务器,如何设计并实现BBS的功能,如用户登录、发帖、回复、浏览等,以及如何利用Struts2和Spring进行控制层和业务层的处理,最后还有可能涉及到...

    MyEclipse 配置Tomcat 服务器

    本文将详细介绍如何在MyEclipse中配置Tomcat服务器,以实现快速开发和测试。 首先,确保你已经安装了MyEclipse和Tomcat服务器。可以从Apache官方网站下载Tomcat,并解压到合适的位置。接下来,我们将进行服务器配置...

    MyEclipse配置Tomcat服务器教程

    如果系统中安装了多个JDK,还需要指定Tomcat使用的JDK版本。完成这些设置后,点击“Finish”保存。 4. 将Web项目部署到Tomcat服务器上: 在MyEclipse中创建或打开一个Web项目,然后右键点击项目,在弹出的菜单中...

    apache-tomcat-8.0.26.zip_Java 8_myeclipse 8

    Apache Tomcat 8.0.26 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是专门为使用Java 8和MyEclipse 8进行开发设计的。在Java开发环境中,...

    myEclipse6.5+Tomcat7 搭建环境

    本文将详细介绍如何在myEclipse6.5环境下配置并集成Tomcat7,以及在配置过程中可能遇到的一些常见问题及其解决方案。 #### 二、环境需求 - **操作系统**:Windows/Linux/MacOS(以Windows为例) - **JDK版本**:...

    myeclipse配置tomcat服务器

    当谈到MyEclipse配置Tomcat时,实质上是在MyEclipse环境中设置Tomcat作为Web服务器,以便能够直接在IDE内进行Web应用程序的调试和发布。这样做的优势在于,开发者可以在同一个环境中完成代码编写、编译、运行和调试...

    MyEclipse+Tomcat7.0配置图文教程

    1. 添加环境变量:在我的电脑-&gt;属性-&gt;高级-&gt;环境变量中新建系统变量,变量名为CATALINA_HOME,变量值为Tomcat解压到的目录。例如C:\Program Files\apache-tomcat-7.0.11。 2. 配置环境变量Path:在系统变量Path的最...

    apache-tomcat-6.0版本配合MyEclipse

    MyEclipse允许开发者将外部的Tomcat服务器添加到其内置的服务器列表中。首先,你需要下载并解压`apache-tomcat-6.0.48`压缩包,确保操作系统是Windows x86。然后,打开MyEclipse,导航到“Window”菜单,选择...

    MyEclipse+Tomcat+MySQL的环境搭建

    MyEclipse+Tomcat+MySQL 环境搭建 MyEclipse+Tomcat+MySQL 环境搭建是 Java 开发中常用的开发环境,本文将详细介绍如何搭建 MyEclipse+Tomcat+MySQL 环境。 一、Java 环境安装 Java 环境安装是 MyEclipse+Tomcat+...

    06-MySQL.rar_jsp myeclipse_myeclipse_myeclipse jsp_myeclipse jsp

    【标题】"06-MySQL.rar_jsp myeclipse_myeclipse_myeclipse jsp_myeclipse jsp" 涉及的是一个基于MyEclipse集成开发环境,使用JSP和MySQL数据库构建的企业级报价管理系统。这个系统整合了前端展示与后端数据处理的...

    MyEclipse+Tomcat+MySQL的环境搭建.txt

    在构建Java Web开发环境时,将MyEclipse、Tomcat与MySQL这三者结合使用是常见且高效的方式。本文将详细解析如何搭建MyEclipse+Tomcat+MySQL的开发环境,确保开发工作顺利进行。 ### 一、配置JDK环境 在开始之前,...

    J2EE环境安装之三_在MyEclipse配置Tomcat5.rar

    MyEclipse会自动构建项目并将其部署到Tomcat服务器,同时提供调试工具帮助你定位和解决问题。 9. **监控和管理Tomcat**:MyEclipse还允许你通过内置的Tomcat Manager工具监控服务器状态,例如查看日志、管理应用...

    myeclipse下tomcat动态加载

    Tomcat是Apache软件基金会的开源项目,是一款广泛使用的Java Servlet容器,用于部署和运行Java Web应用程序。在MyEclipse中配置Tomcat进行动态加载,能够让开发者在不重启服务器的情况下实现应用的热更新,提高开发...

Global site tag (gtag.js) - Google Analytics