windows2003 + IIS6 + Tomcat5.配置

来源:互联网 发布:深圳网站排名优化外包 编辑:程序博客网 时间:2024/04/29 07:50
windows2003 + IIS6 + Tomcat5.配置
2000和2003下整合IIS+TOMCAT详细的配置如下:
1、安装JDK,(我安装在 D:\java)设置环境变量[CLASSPATH、JAVA_HOME、Path](根据自己的JDK安装路径设置)
“我的电脑”->点右键->“属性”->“高级”->“环境变量”->“系统变量”->新建->变量名:
CLASSPATH=.;D:\java\jdk\lib\tools.jar;D:\java\jdk\lib\dt.jar
JAVA_HOME=D:\java\jdk
path=.;D:\Java\jdk\bin;
测试:在DOS下输入javac回车,出现javavc的使用说明表示你的JDK安装成功
在DOS下输入java回车,出现java的使用说明表示你的环境变量设置成功
2、安装Tomcat,(我安装在 D:\Tomct5,安装的HTTP端口是8080,HTTP端口安装完成后可以在server.xml中修改)设置环境变量TOMCAT_HOME(根据自己的Tomcat安装路径设置)
TOMCAT_HOME=D:\Tomct5
测试:启动tomcat,在IE中输入http://localhost:8080出现tomcat的欢迎界面,安装成功!
3、在IIS中把JSP相关的请求发送到Tomcat需要Tomcat Connector的支持,去apache网站下载JK2,JK2负责IIS和Tomcat的通讯,下载地址:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/
下载:jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip
解压后找到bin目录中的isapi_redirector2.dll文件,我把它放在了D:\Tomcat5\iis下(目录随便)。
4、创建workers2.properties文件
在Tomcat安装目录下的conf目录下建一个workers2.properties文件,把下面这段内容拷进去保存,
实际运用时把所有的localhost和8009换成你自己的IP和端口:
[shm]
file=D:/Tomcat5/logs/jk2.log
size=1048576
# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
# Uri mapping
[uri:/*.jsp]
[uri:/*.do]
worker=ajp13:localhost:8009
# define the worker
[status:status]
# Uri mapping
[uri:/jkstatus/*]
worker=status:status
使用前请先修改文件的file=D:/Tomcat5/logs/jk2.log这一行,改成你需要的路径,copy地址栏的路径时请注意,是"/"而不是“\”,跟windows表示的路径不一样。在 # Uri mapping 处设置你需要tomcat操作的内容。
5、编辑Tomcat安装目录下的conf目录中的jk2.properties文件(如果没有新建一个)
添加如下内容:
request.tomcatAuthentication=false
6、编辑注册表
新建一个iis.reg文件,把下面这段内容拷进去保存然后双击iis.reg把信息导入注册表。
(注意,把涉及的Tomcat路径改成你的Tomcat的路径)
iis.reg文件内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector]
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
"serverRoot"="D:\\Tomcat5"
"extensionUri"="/jakarta/isapi_redirector2.dll"
"workersFile"="D:\\Tomcat5\\conf\\workers2.properties"
"logLevel"="DEBUG"
7、添加“ISAPI筛选器(以便Connector能截取到URL请求)
打开“开始菜单->设置->控制面板->管理工具->Internet 服务管理器"在里面选择“网站”中的默认网站(默认网站我的指向D:\Tomcat5\webapps) (注:2000系统为 “开始菜单->设置->控制面板->管理工具->Internet 服务管理器在里面选择默认Web站点"),在其上点右键选“属性”,在弹出的页框里选择“ISAPI筛选器”,点“添加”,筛选器名称填jakarta,可执行文件中填入你的isapi_redirector2.dll的绝对路径(就是第3部中isapi_redirector2.dll文件存放的位置,我的是D:\Tomcat5\iis\isapi_redirector2.dll)。“确定”后点“确定”关闭属性页。
8、新建虚拟目录
在Internet信息服务管理器中,在里面选择“网站”中的默认网站,点右键,选择“新建”->“虚拟目录”,别名填jakarta,下一步,路径选为你的isapi_redirector2.dll存放的目录,我的是D:\Tomcat5\iis,下一步,权限中记得把 "执行(例如ISAPI应用程序或CGI)"一项打上勾,再点下一步,再点“完成”。
如果你用的是IIS5的话,到这里就可以结束了,但IIS6还没完(稍候介绍)。 
9、重新启动“默认 Web 站点”。然后在“默认 Web 站点”点右键->“属性”->“ISAPI筛选器”,如果"jakarta"前面的箭头是绿色的,那么表明配置已经成功了。如果箭头是红色,那么请你检查整个配置过程,看看有没有弄错的地方。
10、IIS6需添加此步骤,(如果是IIS5跳过) 在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,弹出的框中扩展名填jsp(这里的名称无所谓,随便取一个),“要求的文件”选“添加”然后找到你的isapi_redirector2.dll后“确定”。“设置扩展状态为允许”也打上勾,确定。
至此,Connector就可以对请求进行过滤,把符合配置文件中的请求重写到extension_uri指定的uri进行处理,这里为/jakarta/isapi_redirect2.dll,然后isapi_redirect2.dll再转发到tomcat的8009由tomcat处理完成后再循原路发回去.
11、新建测试文件 在tomcat安装目录中的weapps中新建一个test目录,里面新建一个test.jsp文件和相应的WEB-INF目录和web.xml文件。
12、重启电脑
13、启动Tomcat,再启动IIS 打开IE,输入http://localhost:8080/test/test.jsp
然后再看看http://localhost/test/test.jsp,如果两者执行结果一样,恭喜你,整合成功了!
注:
1.如果在输入http://localhost/test/test.jsp显示tomcat的错误信息,看一下你的tomcat安装目录中的common\lib目录下有没有tools.jar文件,如果没有就去把JDK安装目录中的lib目录下的tools.jar拷贝进来。
2. IIS指向的目录最好和Tomcat指向的目录一致,不然会发生找不到图像和其他资源文件的问题。
3.你需要tomcat处理的文件和目录可以在workers2.properties(见第4步)中的# Uri mapping与worker=ajp13:localhost:8009之间设置,如:[uri:/*.jsp],[uri:/*.do],每次修改workers2.properties后需要重启IIS才能生效。
4.英文文档中还提到应该把IIS6设置为IIS5隔离模式,“Internet信息服务管理器”->“网站”->“属性”->“服务”,把“以IIS5.0隔离模式运行WWW服务”打上勾。这个也可以不选择,如果你配置不成功就把这个勾上。
5.如果上述方法都试过了还无法成功整合的话,可以尝试如下操作:虚拟目录-à属性à虚拟目录选项à配置 添加一个应用程序扩展,扩展名为 .jsp 可执行文件为isapi_redirector2.dll 的绝对路径,同样添加 .do 对应isapi_redirector2.dll 的应用程序扩展。
6. tomcat 默认端口是8080,从步骤4可以知道,JK2使IIS能够把所有的jsp 请求发送到tomcat ,让tomcat 的8009端口来处理请求,所以不用把tomcat 的默认端口改成8009,这样的话会存在冲突,导致整合无法成功。
http://localhost:8080/test/test.jsp
然后再看看http://localhost/test/test.jsp,如果两者执行结果一样,恭喜你,整合成功了!
7.使用struts+hibernate框架,服务器配置是win2003+iis6+tomcat7+mysql,调试时在8080端口下一切正常,不以为然。真正发布使用后却发现上传附件报错:
javax.servlet.ServletException: Processing of multipart/form-data request failed. Stream ended unexpectedly
      不过是个200k的图片,为什么会这样?
      网上查了一下,总结有两个观点
      1.有人说iis有上传200k限制,经过实践排除此原因
      2.这个问题是jk2的一个bug。
      我确实用的是jk2整合的tomcat和iis,而jk2也确实早已不被官方支持,所以不可能有改进这个bug的最新版本出现。如果改用官方一直支持的jk,由于整合方式有所区别,又得为在服务器上调试它大费周折,不太可取。有人说iis+resin就不会出现该问题,没试过,应该是个办法。
      服务器上有多重要的应用,所以大改动的解决办法都不可取。难道用JK2整合TOMCAT和IIS基础上,这个问题就没有解决办法了吗?
      经过艰苦的搜寻,我终于找到了一个改进了这个bug的新版本的jk2,比原版本还小了40k。官方早就没有更新了,难道是高手diy版?不会有什么问题吧?有点担心ing。管他呢,看来这也是解决这一问题的惟一途径了。我用它替换了原来的dll文件,试发了几个1M多的文件,还算成功,暂时也没出现什么其他问题。windows2003 + IIS6 + Tomcat5.配置
原创粉丝点击