Apache

    技术2022-05-18  13

    http://chaoji-liangbin.blog.163.com/blog/static/25239212201082791033618/

     

    参考网站:

      http://suky.javaeye.com/blog/713687

     

    http://blog.csdn.net/mengfanpp/archive/2009/04/22/4101333.aspx

     

    软件清单:

     

    Apache:  httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi

    Jk:  mod_jk-1.2.30-httpd-2.2.3.so

    JBoss4.3.X(1台)

    Tomcat6.0.18(2台)

     

      1、  Apache产品的安装

     

    打开httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi安装文件,按照操作,点击下一步,在

     

    界面,输入域名,服务名和Email(这个可以随意乱写)

     

    最后点击安装,安装完毕以后,默认已经启动了apache,打开ie,输入:

    http://localhost/http://localhost/index.html

     

    出现It Works表示安装成功。

     

    Apache的启动与关闭可以通过Apache Server Monitor管理(在安装菜单中打开)

     

    补充说明:绿色版的apache的启动与关闭(网上查的,未验证,因为我本机使用的是安装版的)

        对于绿色版的apache,可以通过命令行来启动apache

        打开命令行,将目录切换到%apache%/bin目录下,

    先安装apache服务:

    运行:apache -k install

     

    Apache的启动:net start apache2

    Apache的关闭:

    net stop apache2

     

    卸载apache服务:

    apache -k uninstall

     

    2、 jk的安装

     

    将mod_jk-1.2.30-httpd-2.2.3.so 文件拷贝到%Apache%/conf/modules文件夹下,更名为mod_jk.so,这是为了命名统一规范,方便以后配置。

     

    Jk安装完毕。

     

     

    3、   一台服务器上同时启动多个tomcat

     

    如果一台服务器仅启动一个tomcat,且能够正常启动,端口与JBoss不冲突,则本小节可以忽略。则依照下文,修改三个端口即可。

           如果一台服务器需要启动多个tomcat,仅需更改tomcat下的三个端口即可,防止端口冲突。

    打开%tomcat%/conf/server.xml文件,依次找到以下三段:

    <Connector port="8877" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" />

    ……………….

    <Server port="8005" shutdown="SHUTDOWN">

    ……………….

    <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    修改该三个端口(8877、8005、8009),使得每个tomcat端口不冲突即可。

    修改完毕,若没有端口冲突,则每个tomcat可以正常启动。

     

    4、一台服务器上同时启动多个JBoss

     

    4.1 配置server-binding.xml文件

    若服务器仅使用一台JBoss,且能正常启动,不与Tomcat冲突,则本小节可以忽略。若有冲突,则建议修改Tomcat的端口(JBoss修改端口较为多且复杂)。

    若服务器使用多台JBoss,则需要更改JBoss的端口,使得每个JBoss使用端口不一样,方能同时启动多个JBoss。

    对于JBoss的端口,JBoss提供了mbean来统一管理多实例配置。即全部端口都统一管理。

    将%JBoss%/jboss-as/docs/examples/binding-manager文件夹下的端口配置模板

    sample-bindings.xml文件拷贝到%JBoss%/jboss-as/server文件下,命名为

    server-bindings.xml,这样做是为了统一管理,方便以后配置。

    4.2 对server-binding.xml的说明

    打开server-bindings.xml这个文件,可以发现,里面提供了4个端口配置,分别是

    Ports-default

    Prots-01

    Ports-02

    Ports-03

     

    即有四组端口,但同时,看该文件开头, 

    也就是说,只有ports-default, ports-01, ports-02三个端口可以在同一台机器上使用,实际上一台机器,已经配置好的端口只有3组,在原有配置上,一台机器只能同时启动3个jboss,对于超过3个JBoss ,需要自己去再定义一组端口。

    以下提供第四组端口:

     

     

    <!-- ********************************************************** -->

       <!-- *                        ports-04                   * -->

       <!-- ********************************************************** -->

       <server name="ports-04">

     

          <!-- EJB3 Remoting Connector ejb3.deployer/META-INF/jboss-service.xml -->

     

          <service-config name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate">

            <delegate-config>

               <attribute name="InvokerLocator">socket://${jboss.bind.address}:13873</attribute>

            </delegate-config>

             <binding port="13873"/>

          </service-config>

     

          <!-- ********************* jboss-service.xml ****************** -->

     

          <service-config name="jboss:service=Naming"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="Port" hostName="BindAddress">

                <attribute name="RmiPort">11098</attribute>

             </delegate-config>

             <binding port="11099" host="${jboss.bind.address}"/>

          </service-config>

     

     

          <service-config name="jboss:service=WebService"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="Port"/>

             <binding port="18083"/>

          </service-config>

     

     

          <service-config name="jboss:service=invoker,type=jrmp"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="RMIObjectPort"/>

             <binding port="14444"/>

          </service-config>

     

          <service-config name="jboss:service=invoker,type=pooled"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="ServerBindPort"/>

             <binding port="14445"/>

          </service-config>

     

     

          <!-- ********************* cluster-service.xml **************** -->

     

          <service-config name="jboss:service=HAJNDI"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate">

             <delegate-config portName="Port" hostName="BindAddress">

                <attribute name="RmiPort">11101</attribute>

             </delegate-config>

             <binding port="11100" host="${jboss.bind.address}"/>

          </service-config>

     

          <service-config name="jboss:service=invoker,type=jrmpha"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate">

             <delegate-config portName="RMIObjectPort"/>

             <binding port="14444"/>

          </service-config>

     

          <service-config name="jboss:service=invoker,type=pooledha"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate">

             <delegate-config portName="ServerBindPort"/>

             <binding port="14448"/>

          </service-config>

     

          <!-- ********************* iiop-service.xml ****************** -->

     

          <service-config name="jboss:service=CorbaORB"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="Port"/>

             <binding port="13528"/>

          </service-config>

     

     

          <!-- ********************* jmx-rmi-adaptor.sar **************** -->

     

          <service-config name="jboss.jmx:type=Connector,name=RMI"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="RMIObjectPort"/>

             <binding port="29001"/>

          </service-config>

     

     

          <!-- ********************* snmp-adaptor.sar ****************** -->

     

          <service-config name="jboss.jmx:name=SnmpAgent,service=trapd,type=logger"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="Port"/>

             <binding port="11162"/>

          </service-config>

     

          <service-config name="jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="Port"/>

             <binding port="11161"/>

          </service-config>

     

     

          <!-- ********************* jbossmq-service.xml **************** -->

     

          <!-- JMS related services -->

          <service-config name="jboss.mq:service=InvocationLayer,type=UIL2"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="ServerBindPort"/>

             <binding port="18093"/>

          </service-config>

     

     

          <!-- ********************* jbossmq-httpil.sar **************** -->

          <service-config name="jboss.mq:service=InvocationLayer,type=HTTP"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config portName="URLPort"/>

             <binding port="8083"/>

          </service-config>

     

          <!-- ********************* hajndi-jms-ds.xml **************** -->

     

          <!-- The JMS provider loader -->

          <service-config name="jboss.jms:service=JMSProviderLoader,name=HAJNDIJMSProvider"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate">

             <!--

                  MAKE SURE java.naming.provider.url

                  PORT IS SAME AS HA-JNDI ABOVE !!!

             -->

             <delegate-config>

                <attribute name="Properties"><![CDATA[

                    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

                    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

                    java.naming.provider.url=${jboss.bind.address:localhost}:11100

                    jnp.disableDiscovery=false

                    jnp.partitionName=${jboss.partition.name:DefaultPartition}

                    jnp.discoveryGroup=${jboss.partition.udpGroup:230.0.0.4}

                    jnp.discoveryPort=1102

                    jnp.discoveryTTL=16

                    jnp.discoveryTimeout=5000

                    jnp.maxRetries=1

               ]]>

               </attribute>

            </delegate-config>

            <!-- NOTE: YOU MUST ADD THIS ELEMENT, BUT THE VALUE DOESN'T MATTER

                 BE SURE THE CORRECT VALUE IS IN java.naming.provider.url ABOVE -->

            <binding port="11100"/>

          </service-config>

     

          <!-- **************** http-invoker.sar & httpha-invoker.sar*************** -->

          <!-- EJBInvoker -->

          <service-config name="jboss:service=invoker,type=http"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config>

                <attribute name="InvokerURLSuffix">:${port}/invoker/EJBInvokerServlet</attribute>

            </delegate-config>

             <!--

                MUST BE THE SAME AS

                TOMCAT HTTP CONNECTOR BELOW !!!

                 -->

             <binding port="8083"/>

          </service-config>

     

            <!-- JMXInvoker -->

          <service-config name="jboss:service=invoker,type=http,target=Naming"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config>

                <attribute name="InvokerURLSuffix">:${port}/invoker/JMXInvokerServlet</attribute>

            </delegate-config>

             <!--

                MUST BE THE SAME AS

                TOMCAT HTTP CONNECTOR BELOW !!!

                 -->

             <binding port="8083"/>

          </service-config>

     

            <!-- readonly JMXInvoker -->

          <service-config name="jboss:service=invoker,type=http,target=Naming,readonly=true"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config>

                <attribute name="InvokerURLSuffix">:${port}/invoker/readonly/JMXInvokerServlet</attribute>

            </delegate-config>

             <!--

                MUST BE THE SAME AS

                TOMCAT HTTP CONNECTOR BELOW !!!

                 -->

             <binding port="8083"/>

          </service-config>

     

        <!-- **************** httpha-invoker.sar*************** -->

          <!-- EJBInvokerHA -->

          <service-config name="jboss:service=invoker,type=httpHA"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config>

                <attribute name="InvokerURLSuffix">:${port}/invoker/EJBInvokerHAServlet</attribute>

            </delegate-config>

             <binding port="8083"/>

          </service-config>

     

          <!-- JMXInvokerHA -->

          <service-config name="jboss:service=invoker,type=http,target=HAJNDI"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

             <delegate-config>

                <attribute name="InvokerURLSuffix">:${port}/invoker/JMXInvokerHAServlet</attribute>

            </delegate-config>

             <binding port="8083"/>

          </service-config>

     

     

        <!-- ********************* jboss-ws4ee.sar **************** -->

     

          <!-- Web Service related services -->

          <service-config name="jboss.ws4ee:service=AxisService"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

             >

            <delegate-config portName="WebServicePort" hostName="WebServiceHost"/>

            <binding port="8083" host="${jboss.bind.address}"/>

          </service-config>

     

          <!-- ********************* remoting **************** -->

     

           <!-- *** remoting connector *** -->

           <service-config name="jboss.remoting:service=Connector,transport=socket"

              delegateClass="org.jboss.services.binding.XSLTConfigDelegate">

              <delegate-config>

                 <xslt-config configName="Configuration"><![CDATA[

                   <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>

     

                      <xsl:output method="xml" />

                      <xsl:param name="port"/>

     

                      <xsl:template match="/">

                         <xsl:apply-templates/>

                      </xsl:template>

     

                      <xsl:template match="attribute[@name='serverBindPort']">

                         <attribute type="java.lang.String" name="serverBindPort"><xsl:value-of select='$port'/></attribute>

                      </xsl:template>

     

                      <xsl:template match="*|@*">

                         <xsl:copy>

                            <xsl:apply-templates select="@*|node()"/>

                         </xsl:copy>

                      </xsl:template>

                   </xsl:stylesheet>

              ]]>

              </xslt-config>

              </delegate-config>

              <binding port="14446" />

           </service-config>

     

     

          <!-- ********************* hsqldb-ds.xml ********************** -->

     

          <!-- Hypersonic related services

     

                Only if using TCP setup (local file setup by default)

     

          <service-config name="jboss.jca:service=ManagedConnectionFactory,name=DefaultDS"

             delegateClass="org.jboss.services.binding.XSLTConfigDelegate"

          >

             <delegate-config>

             <xslt-config configName="ManagedConnectionFactoryProperties"><![CDATA[

    <xsl:stylesheet

          xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>

     

      <xsl:output method="xml" />

      <xsl:param name="host"/>

      <xsl:param name="port"/>

     

      <xsl:template match="/">

        <xsl:apply-templates/>

      </xsl:template>

     

      <xsl:template match="config-property[@name='ConnectionURL']">

        <config-property type="java.lang.String" name="ConnectionURL">jdbc:hsqldb:hsql://<xsl:value-of select='$host'/>:<xsl:value-of select='$port'/></config-property>

      </xsl:template>

     

      <xsl:template match="*|@*">

        <xsl:copy>

          <xsl:apply-templates select="@*|node()"/>

        </xsl:copy>

      </xsl:template>

    </xsl:stylesheet>

    ]]>

             </xslt-config>

             </delegate-config>

             <binding host="localhost" port="1701" />

          </service-config>

     

          <service-config name="jboss:service=Hypersonic"

             delegateClass="org.jboss.services.binding.AttributeMappingDelegate"

          >

             <delegate-config portName="Port" />

             <binding port="1701" />

          </service-config>

          -->

     

     

          <!-- ********************* tomcat ********************** -->

     

          <service-config name="jboss.web:service=WebServer"

             delegateClass="org.jboss.services.binding.XSLTFileDelegate"

             >

             <delegate-config>

                <xslt-config configName="ConfigFile"><![CDATA[

       <xsl:stylesheet

             xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>

     

         <xsl:output method="xml" />

         <xsl:param name="port"/>

     

         <xsl:variable name="portAJP" select="$port - 71"/>

         <xsl:variable name="portHttps" select="$port + 363"/>

     

         <xsl:template match="/">

           <xsl:apply-templates/>

         </xsl:template>

     

          <xsl:template match = "Connector">

             <Connector>

                <xsl:for-each select="@*">

                <xsl:choose>

                   <xsl:when test="(name() = 'port' and . = '8083')">

                      <xsl:attribute name="port"><xsl:value-of select="$port" /></xsl:attribute>

                   </xsl:when>

                   <xsl:when test="(name() = 'port' and . = '8009')">

                      <xsl:attribute name="port"><xsl:value-of select="$portAJP" /></xsl:attribute>

                   </xsl:when>

                   <xsl:when test="(name() = 'redirectPort')">

                      <xsl:attribute name="redirectPort"><xsl:value-of select="$portHttps" /></xsl:attribute>

                   </xsl:when>

                   <xsl:when test="(name() = 'port' and . = '8443')">

                      <xsl:attribute name="port"><xsl:value-of select="$portHttps" /></xsl:attribute>

                   </xsl:when>

                   <xsl:otherwise>

                      <xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>

                   </xsl:otherwise>

                </xsl:choose>

                </xsl:for-each>

                <xsl:apply-templates/>

             </Connector>

          </xsl:template>

     

         <xsl:template match="*|@*">

           <xsl:copy>

             <xsl:apply-templates select="@*|node()"/>

           </xsl:copy>

         </xsl:template>

       </xsl:stylesheet>

       ]]>

                </xslt-config>

             </delegate-config>

             <binding port="8083"/>

          </service-config>

     

          <!-- ********************* jboss messaging ********************** -->

     

          <service-config name="jboss.messaging:service=Connector,transport=bisocket"

                          delegateClass="org.jboss.services.binding.AttributeMappingDelegate">

             <delegate-config>

                <attribute name="Configuration"><![CDATA[

             <config>

                <invoker transport="bisocket">

                   <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>

                   <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>

                   <attribute name="dataType" isParam="true">jms</attribute>

                   <attribute name="socket.check_connection" isParam="true">false</attribute>              

                   <attribute name="serverBindAddress">${jboss.bind.address}</attribute>

                   <attribute name="serverBindPort">14457</attribute>

                   <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>

                   <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>

                  

                   <attribute name="numberOfCallRetries" isParam="true">1</attribute>

                   <attribute name="pingFrequency" isParam="true">214748364</attribute>

                   <attribute name="pingWindowFactor" isParam="true">10</attribute>

                   <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>

                  

                   <attribute name="stopLeaseOnFailure" isParam="true">true</attribute>

                  

                   <attribute name="clientLeasePeriod" isParam="true">10000</attribute>

                   <attribute name="validatorPingPeriod" isParam="true">10000</attribute>

                   <attribute name="validatorPingTimeout" isParam="true">5000</attribute>

                  

                   <attribute name="failureDisconnectTimeout" isParam="true">0</attribute>

                   <attribute name="callbackErrorsAllowed">1</attribute>

                   <attribute name="registerCallbackListener">false</attribute>

                   <attribute name="useClientConnectionIdentity" isParam="true">true</attribute>

                  

                   <attribute name="timeout" isParam="true">0</attribute>

                  

                   <attribute name="numberOfRetries" isParam="true">10</attribute>

                  

                   <attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>

                  

                   <attribute name="callbackTimeout">10000</attribute>

                </invoker>

                <handlers>

                   <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>

                </handlers>

             </config>

             ]]></attribute>

             </delegate-config>

             <binding port="14457"/>

          </service-config>

     

       </server>

     

    将该组端口拷贝到server-bindings.xml文件中端口与端口之间即可作为新的一组端口(注意不能拷贝到最后),第四组端口(ports-04)使用的http端口是8083,如果要使用该组端口,则使用了ports-default的端口所在的jboss要修改ports-default中的8083端口(有冲突),我本人是改为8983。

      

    4.3 配置端口组

    打开%JBoss%/jboss-as/server/default/conf下的jboss-service.xml文件,找到

    <mbean code="org.jboss.services.binding.ServiceBindingManager"

         name="jboss.system:service=ServiceBindingManager">

         <attribute name="ServerName">ports-04</attribute>

         <attribute name="StoreURL">${jboss.home.url}/server/server-bindings.xml</attribute>

         <attribute name="StoreFactoryClassName">

           org.jboss.services.binding.XMLServicesStoreFactory

         </attribute>

       </mbean>

    这段,取消掉这段的注释,同时修改端口和server-bindings路径

     

     

    ,一个JBoss对应一个端口,避免两个JBoss使用同一个端口。

    同时,还需要修改%JBoss%/jboss-as/server/default/deploy/jboss-web.deployer下的server.xml文件,修改里面的HTTP端口,与之前对应的端口组里的HTTP端口一致,如下图:

    %JBoss%/jboss-as/server/default/deploy/jboss-web.deployer下的server.xml

     

     

    %JBoss%/jboss-as/server/server-bindings.xml(http端口在该文件多个地方出现,要注意统一,如图)

     

    3.4.3 修改JBoss端口

    当为每个需要启动的jboss配置好不同的端口组(ports-default,ports-01,ports-02,ports-04)以后,这里的每组端口中,http端口分别是:8080,8180,8280,8380,如果需要修改http端口,请参考上一节(3.4.2),修改%JBoss%/jboss-as/server/default/deploy/jboss-web.deployer下的server.xml 中定义的http端口和%JBoss%/jboss-as/server/server-bindings.xml文件下的http端口(该端口在server-bindings.xml有多处地方出现,需要一并修改)。

           注意:8083这个端口在JBoss端口组ports-default这组端口中有使用到,如果需要使用到的http端口中有8083这个端口,则要在使用到ports-default这组端口中的JBoss中去修改8083这个端口(本人本机是将该8083端口改成8983),否则可能会报8083端口冲突而启动多个jboss实例失败。

     

    至此,多个JBoss实例部署完成。同时启动多个JBoss,启动成功。

     

    3.5  Apache配置

    在一台机器能同时运行多个tomcat和多个jboss前提下,开始部署Apache,这里以一个JBoss和两个Tomcat,三个项目(TestJBoss,TestJBossB,TestJBossC)为例,TestJBoss、TestJBossB部署在两个tomcat下,TestJBossC部署在jboss下,其他多个服务器和多个项目具体可以参考以下配置方法,同样可以实现多个Tomcat和多个JBoss配置,方法雷同。

     

    1、在%Apache%/conf下新建mod_jk.conf,workers.properties文件

    其中mod_jk.conf的内容及注释如下:

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

    #加载mod_jk Module  

    LoadModule jk_module modules/mod_jk.so 

    #指定 workers.properties文件路径  

    JkWorkersFile conf/workers.properties 

    #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器  

    #JkMount /* controller

    #指定/TestA/*请求交给tomcat1这个work处理,"tomcat1"在workers.propertise里指定

    JkMount  /TestA/* tomcat1

    #指定/TestB/*请求交给tomcat2这个work处理,"tomcat2"在workers.propertise里指定

    JkMount  /TestB/* tomcat2

    #指定/TestC/*请求交给jboss1这个work处理,"jboss1"在workers.propertise里指定

    JKMount  /TestC/* jboss1

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

     

    其中/TestA/*,/TestB/*,/TestC/*是项目访问路径,根据具体项目而定,如需要增加一个访问路径,则只需要后面按照:

    JKMount   项目访问路径   worker节点

    这种模式添加即可。

     

    workers.properties的内容如下:

    #server 列表 

    worker.list = tomcat1,tomcat2,jboss1 

    #========tomcat1========  

    #ajp13 端口号,在tomcat下server.xml配置,默认8009

    worker.tomcat1.port=8009         

    #tomcat的主机地址,

    worker.tomcat1.host=192.168.5.24    

    worker.tomcat1.type=ajp13      

    #========tomcat2========  

    #ajp13 端口号,在tomcat下server.xml配置,默认8009

    worker.tomcat2.port=8010        

    #tomcat的主机地址

    worker.tomcat2.host=192.168.5.24   

    worker.tomcat2.type=ajp13  

    #========jboss1========  

    #ajp13 端口号,在jboss下server.xml配置,默认8009

    worker.jboss1.port=8011        

    #jboss的主机地址,

    worker.jboss1.host=192.168.5.24   

    worker.jboss1.type=ajp13  

     

    tomcat1、tomcat2、jboss1是分发节点,名字可以随意定义,但需要与上文定义的文件mod_jk.conf中的节点分发管理相对应(如:JkMount  /TestB/*  tomcat2中的tomcat2节点

    ),需要指定ajp端口,节点对应的主机地址,该ajp端口与对应的服务器(tomcat或jboss)相对应。(参考下文tomcat和jboss的服务器的端口修改)

     

    最后,在%Apache%/conf下的httpd.conf文件最后添加一句:

    Include "conf/mod_jk.conf"

    如图:

     

    作用是将上面配置的mod_jk.conf添加进配置文件中。

     

     

     

     

     

     

    3.6  服务器上(tomcat和jboss)的配置

    对于tomcat服务器,需要加载项目,在tomcat服务器上,打开%tomcat%/conf/server.xml文件,加载项目,如图:

     

    之后,还需要修改tomcat的ajp端口,找到

    <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    将8009改成与worker.properties文件中定义的相对应即可。

     

     

    对于jboss服务器,需要加载项目,在jboss服务器上,打开%JBoss%/ /server/default/deploy/jboss-web.deployer下,打开server.xml文件,修改ajp端口:

     <!-- Define an AJP 1.3 Connector on port 8009 -->

        <Connector port="8011" address="${jboss.bind.address}" protocol="AJP/1.3"

             emptySessionPath="true" enableLookups="false" redirectPort="8443" />

    防止端口使用冲突而不能正常启动,其中,ajp端口也是与worker.properties文件中定义的相对应。

    之后,再加载对应项目:

    <Context path="/TestC" docBase="D:/project/TestJBossC"/>

    如图:

     

     

    启动jboss,启动tomcat,重启apache,访问http://localhost/TestA/,能正常运行项目:

     

    部署成功。

     

    3.7  配置Apache的ssl

           SSL(Secure Socket Layer): 是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全。

           这里使用的apache本身带有ssl功能。

    先在命令行切换到%apache%/bin目录下

     

           3.7.1 生成服务器Apache的一个RSA私钥

          运行:

    openssl genrsa  –out server.key  1024

     

    生成了一个1024字节的文件server.key,生成证书签署请求CSR

     

    3.7.2生成签署申请

    运行:

    openssl req -new -out server.csr -key server.key -config ../conf/openssl.cnf

     

    其中,    

     Country Name:两个字母的国家代号  State or Province Name:省份名称  Locality Name:城市名称  Organization Name:公司名称  Organizational Unit Name:部门名称  Common Name:你的姓名  Email Address:地址

    依次对应输入如图

     

    此时生成签署文件server.csr.

     

    3.7.3生成CA私钥

    运行:

    openssl genrsa  -out ca.key 1024

     

    此时,会在bin目录下产生ca.key文件

     

    3.7.4利用CA的私钥产生CA自签署证书

    运行:

    openssl req  -new -x509 -days 365 -key ca.key -out ca.crt  -config ../conf/openssl.cnf

     

     

     

    3.7.5 CA为网站服务器签署证书

    在bin目录下创建demoCA文件夹,在该文件夹下创建以下文件:index.txt和serial文件,其中serial内容为01,index.txt为空,以及文件夹 newcerts,

    此后,在命令行运行:

    openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ../conf/openssl.cnf

     

    依次输入y,

    即可生成server.crt文件,该文件在%apache%/bin目录下

     

    3.7.6将 server.crt,server.key复制到%apache%/ conf文件夹下

     

    3.7.7启用apache的ssl功能

    打开%Apache%/conf/httpd.conf配置文件,去掉下面两句前的注释

    LoadModule ssl_module modules/mod_ssl.so 

    Include conf/extra/httpd-ssl.conf

    如图:

     

     

     

    修改%Apache2%/conf/extra 下的httpd-ssl.conf文件里的两个字段:

    SSLCertificateFile "D:/Apache2.2/conf/server.crt"

    SSLCertificateKeyFile "D:/Apache2.2/conf/server.key"

    修改里面的server.crt和server.key的正确路径。

    重启apache,访问https://192.168.5.24/会出现安全认证,点击“是”,出现

     

    界面,表示apache的ssl启动成功。

     

    3.7.8 利用apache的ssl功能

    打开%Apache%/conf/extra/ httpd-ssl.conf文件(先前配置ssl时已经配置过一次,这次是加项目路径)

    找到

    DocumentRoot "D:/Apache2.2/htdocs"

    ServerName www.gdie.com:443

    ServerAdmin admin@gdie.com

    这三行附近,在其后添加以下内容:

    JkMount /TestA/* tomcat1

    JkMount /TestB/* tomcat2

    JkMount /TestC/* jboss1

    其中类似/TestA/* 是指项目访问路径,tomcat1是节点名字(在worker.properties有配置)

     

    启动服务器(tomcat和jboss),打开ie,输入https://192.168.5.24/TestA/

    显示如下图所示,配置成功。

     

    其他项目类似。


    最新回复(0)