Author: admin | Category: Java, Windows
Comments: 评论关闭

最近研究不少 Windows 下的东西。
在网上关于 IIS + JK + tomcat 配置的文章应该很多,我主要是想化繁为简,给予新手分享一个最简单的方法。

对于 IIS ,我个人比较不屑,但无奈其某程度上的确是 Windows 最强悍的httpd 服务器。 apache 跟 Nginx for windows 的版本会有 200 线程限制,只有 IIS 没有。而且如果你有 asp 的应用,跟一台服务器,你也无法选择。

很简单其实就那么几步,细说也不用点多少次鼠标。
首先我们要准备好所需要的软件:

1,下载安装 JDK (截止至发稿, 最新版为 6U16)

更新发布网址:http://java.sun.com/javase/downloads/index.jsp
JDK 6U16 下载地址:https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u16-oth-JPR@CDS-CDS_Developer

2,下载安装 tomcat 6 (截止至发稿, 最新版本为6.0.20)
(Windows Service Installer) 该版本能在安装向导中就完成 tomcat + JDK 的环境,并且以服务形式存在于Windows中。

更新发布网址:http://tomcat.apache.org/download-60.cgi
Tomcat 6.0.20 下载地址:http://apache.freelamp.com/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.exe

3,下载 JK For IIS  ISAPI过滤器 (截止至发稿, JK最新版本为1.2.28)

更新发布网址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/
JK ISPI 1.2.28 下载:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/isapi_redirect-1.2.28.dll

接下来开始把上边的东西整合到 IIS

1,完成 JDK 跟 tomcat 的安装。步骤相当简单,
按顺序,首先装 JDK ,完成后会在安装目录下有2个文件夹,分别是 JDK 跟 JRE。
然后安装 tomcat 的时候会让你选择 JRE 的路径,就对应上边JRE的路径即可。

其他就不详细说了。但 tomcat 的配置要写写。

化繁为简,把tomcat安装目录下conf/server.xml 的内容都删除掉,然后改为:

<Server port=”8005″ shutdown=”SHUTDOWN”>
  <Service>
    <Connector port=”8081″ protocol=”org.apache.coyote.http11.Http11NioProtocol”
                connectionTimeout=”20000″
                        redirectPort=”8443″ />
    <Connector port=”8009″ maxThreads=”1000″ protocol=”AJP/1.3″ redirectPort=”8443″/>
    <Engine jvmRoute=”tomcat1″ defaultHost=”localhost”>
      <Host  appBase=”webapps”
            unpackWARs=”false” autoDeploy=”false”
            xmlValidation=”false” xmlNamespaceAware=”false”>
        <Context path=”" docBase=”D:\web_server\java” reloadable=”false”/>
     </Host>
    </Engine>
  </Service>
</Server>

其实你也可以对照以上的参数自己在原来的文件上修改。
然后要注意的是  <Connector port=”8009″ maxThreads=”1000″ protocol=”AJP/1.3″ redirectPort=”8443″/>
跟 <Context path=”" docBase=”D:\web_server\java” reloadable=”false”/>

这两行分别设置JK的通信端口以及应用的所在目录。

2,创建2个配置文件用于JK。分别是 workers.properties 跟 uriworkermap.properties

workers.properties 内容(实际应用时请删除注释):

////////////////////////////////////////////////////////////////////////////////////

workers.tomcat_home=D:\Tomcat 6.0                                      //对应tomcat的安装路径
workers.java_home=C:\Program Files\Java\jdk1.6.0_16              //对应JDK 的安装路径

worker.list=my_tomcat         //应用名,可以任意起,但修改后需要同时修改以下其余字符。

worker.s1.type=ajp13            //通信协议
worker.s1.host=127.0.0.1      //tomcat的IP地址,这里是本机。
worker.s1.port=8009             //tomcat跟JK 的通信端口
worker.s1.lbfactor=1             //用于均衡负载时的配额

#############################

worker.my_tomcat.type=lb     //运行模式,无需修改
worker.my_tomcat.balance_workers=s1   //应用所包含的成员多个可用“,”号隔开。无需修改
worker.my_tomcat.sticky_session=True   //session 粘贴。无需修改

//往下是环境配置,无需修改。

worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jasper.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)servlet.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)webserver.jar
worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
worker.inprocess.cmd_line=-config
worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/server.xml
worker.inprocess.cmd_line=-home
worker.inprocess.cmd_line=$(workers.tomcat_home)
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr
worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)

////////////////////////////////////////////////////////////////////////////////////

uriworkermap.properties 的内容(实际应用时请删除注释):

////////////////////////////////////////////////////////////////////////////////////

/*=my_tomcat         

//所有请求发往应用 my_tomcat 以下的除外,因为以下的是静态文件,由IIS处理。

!/*.gif=my_tomcat
!/*.jpg=my_tomcat
!/*.png=my_tomcat
!/*.html=my_tomcat
!/*.htm=my_tomcat 

//更多静态文件类型由你们自己添加了。

////////////////////////////////////////////////////////////////////////////////////

3,开始 JK 与 IIS 整合。

首先把刚才下载的 JK For IIS  ISAPI过滤器 复制到 tomcat\bin\win32 目录下(没有该目录可以创建)

然后开始 IIS 的设置:

1.  启动Internet服务管理器,首先把该站点的目录路径改为java 程序的路径,对应 tomcat 的docBase 路径 如下图所示:

1.  新建虚拟目录jakarta

选择默认WEB站点,点击鼠标右键选择新建虚拟目录如下图所示:

         在新增虚拟目录对话框中输入jakarta,选择isapi_redirect.dll所在的目录,给该虚拟目录赋予可执行权限如下图:

3.  创建ISAPI筛选器

右击默认WEB站点选择属性打开WEB站点的属性对话框并选择ISAPI筛选器如下图:

点击新建按钮打开新建筛选器对话框,输入筛选器名称jakarta以及isapi_redirect.dll的绝对路径并确定。

4,然后倒入一份注册表的配置,内容如下(实际应用时请删除注释):

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
“extension_uri”=”/jakarta/isapi_redirect.dll”                                         // 对应IIS jakarta虚拟目录的路径
“log_file”=”D:\\Tomcat 6.0\\logs\\iis_redirect.log”                                //日志文件路径,用于除错
“log_level”=”info”
“worker_file”=”D:\\Tomcat 6.0\\conf\\workers.properties”                  //workers.properties 配置文件路径
“worker_mount_file”=”D:\\Tomcat 6.0\\conf\\uriworkermap.properties”         //uriworkermap.properties 配置文件路径

创建一个 jk.txt 文档,把以上内容复制进去,然后改名为jk.reg 双击后导入即可。

5.  重新启动IIS

  1. 停止默认WEB站点 

    b.       启动TOMCAT服务器

    c.       重新启动服务:World Wide Web Publishing Service

    请重新打开图4对话框查看刚添加的筛选器的运行状态,必须有一个绿色向上的箭头。

    d.       启动默认WEB站点

    然后试试在目录下创建一个 hello.jsp 的程序,看看在浏览器中能否显示出内容。

Author: admin | Category: Apache, Java
Comments: 评论关闭

关于有虚拟主机 Apache + JK +( tomcat1 / tomcat 2) 这么一个架构的配置方式

之前发过在回帖中,发现的人不多,现在开主题发。

步骤不多,也把各个配置的细节,用途都写出来了,新手们认真看。

首先配的是 httpd.conf 的虚拟主机配置

如下:httpd.conf 找到 #NameVirtualHost 去掉前边的 # 然后配置如下

NameVirtualHost *:80

#########################################

<VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot “/opt/webroot”
    ServerName localhost
    #ErrorLog logs/error.log
    JkMountFile conf/localhost.properties
</VirtualHost>

#########################################

<VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot “/opt/web1″
    ServerAlias www.web1.com
    #ErrorLog logs/error.log
    JkMountFile conf/web1.properties   #加载mod_jk配置路径
</VirtualHost>

#########################################

<VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot “/opt/web2″
    ServerAlias www.web2.com
    #ErrorLog logs/error.log
    JkMountFile conf/web2.properties  #加载mod_jk配置路径
</VirtualHost>

##################################

以上配置的前提是你已经顺利编译安装好 mod_jk 模块

然后修改 mod_jk 的全局配置 httpd-jk.conf

vim conf/extra/httpd-jk.conf

LoadModule      jk_module       modules/mod_jk.so

JkWorkersFile   conf/workers.properties   #指定各个配置文件路径
JkMountFile     conf/urimap.properties
JkLogFile       logs/mod_jk.log
JkLogLevel      warn

<Location /jkstatus>    #管理页面
    JkMount status
</Location>
:wq 保存退出

#########################

然后创建各自的 web1.properties ,web2.properties 配置文件,目录路径跟 httpd.conf 相同

# vim conf/web1.properties

/*=tomcat_web1 

!/*.gif=web1 
!/*.jpg=web1
!/*.png=web1
!/*.html=web1
!/*.htm=web1

#第一行的意思是把请求转往代号为 tomcat_web1(命名可与虚拟主机无关) 的 tomcat 端, 一会我们需要在 workers.properties 配置中设置。
#而剩下的是不需要转往 tomcat 的请求类型, 因为 tomcat 处理静态文件性能很差, 所以这里的规则就是过滤,把静态文件处理留给apache。
:wq 保存退出

web2.properties 的配置方式跟 web1 相同。

#################################

 编辑 jk 全局配置

# Vim workers.properties

worker.list=tomcat_web1,tomcat_web2,status     #告诉 jk 你需要他统管的 tomcat 名(代号) 最后一个”status” 是jk 的管理页面

worker.status.type=status  #为 status 路径设置属性为管理页面。

############# 先配置好每个 tomcat 与 JK 的链接参数 ################
worker.s1.type=ajp13    #协议类型
worker.s1.host=127.0.0.1 #tomcat所在服务器的ip,如果是本机就是 127.0.0.1
worker.s1.port=8108 #tomcat的端口
worker.s1.lbfactor=1 #如果是均衡负载状态,多个tomcat的负载比例。

worker.s2.type=ajp13
worker.s2.host=127.0.0.1
worker.s2.port=8109
worker.s2.lbfactor=1

############## 再配置 tomcat 与 jk 的调度 ###############

worker.tomcat_web1.type=lb    #lb 的意思是可集成多个tomcat均衡负载,但只有一个tomcat 的时候也可以使用。
worker.tomcat_web1.balance_workers=s1  #开头的”worker.tomcat_web1″对应web1.properties的配置。这里配置群组的tomcat成员。”s1″ 是成员代号。对应上边tomcat的链接参数。
worker.tomcat_web1.sticky_session=True #是否打开session 粘贴。

worker.tomcat_web2.type=lb #意义同上
worker.tomcat_web2.balance_workers=s2
worker.tomcat_web2.sticky_session=True

:wq 配置完成后保存退出

 ###########################

配置路径名:

编辑或创建 urimap.properties

# vim urimap.properties

/*=lb         # 把请求发往 lb
/jkstatus=status  # 把JK管理页面的连接定为 http://www.web1.com/jkstatus 或者 http://www.web2.com/jkstatus 

:wq 保存退出

你也可以修改或创建相同目录里localhost.properties 把 管理页面链接加到里边。这么链接地址就为 http://localhost/jkstatus
#####################

然后就剩下 tomcat 了

修改端口号对应tomcat 组这个不用说了吧?

最重要说的是既然在各自的 web1.properties 跟 workers.properties中配置了 tomcat 名, 这么除了告诉jk tomcat的IP地址以及端口号, 还必须告诉 tomcat 他的名字。

Engine jvmRoute=”tomcat_web1″

分别在 tomcat1 跟 tomcat2 的  server.xml 中找到相应的配置. 改上相应的参数!

到此,即完成整个 Apache + JK + tomcat 的配置过程。

Top
RSS for entries