Debian + apache2 + tomcat5 + mod-jk

Pagina: 1
Acties:

  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 13-01 23:54
Ik ben nu al een week aan het proberen om dit werkende te krijgen. Nergens op het web vind ik een duidelijke howto. Hopelijk kunnen jullie mij helpen.

Eerst en vooral heb ik via apt j2sdk1.5-sun, apache2, tomcat5, libapache2-mod-jk en tomcat5-webapps geïnstalleerd.
Daarna heb ik de volgende instellingen gedaan.

Het volgende heb ik toegevoegd aan de /etc/tomcat5/server.xml file

na de tag <Server port="8005" shutdown="SHUTDOWN" debug="0">
XML:
1
2
3
<Listener className="org.apache.jk.config.ApacheConfig" 
          modJk="/usr/lib/apache2/modules/mod_jk.so" 
          workersConfig="/etc/libapache2-mod-jk/workers.properties"/>

na <Service name="Tomcat-Standalone">
XML:
1
2
3
4
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.ajp.tomcat5.Ajp13Connector"
           port="8009" minProcessors="5" maxProcessors="75"
           acceptCount="10" debug="0"/>


na <Engine name="Catalina" defaultHost="localhost" debug="0">
XML:
1
2
3
4
<Listener className="org.apache.jk.config.ApacheConfig" 
          append="true"
          forwardAll="false"
          modJk="/usr/lib/apache2/modules/mod_jk.so" />


De /etc/libapache2-mod-jk/workers.properties file
code:
1
2
3
4
5
6
7
8
9
workers.tomcat_home=/usr/share/tomcat5
workers.java_home=/usr/lib/java
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13_worker


De /etc/apache2/sites-enabled/jsp.test file
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<VirtualHost *>
    ServerAdmin webmaster@jsp.test
    
    DocumentRoot /var/lib/tomcat5/webapps/jsp-examples/
    ServerName jsp.test

    # Static files
        Alias / "/var/lib/tomcat5/webapps/jsp-examples/"

    <Directory />
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    # Deny direct access to WEB-INF and META-INF
        <Location "/WEB-INF/*">
              AllowOverride None
              deny from all
        </Location>

        <Location "/META-INF/*">
              AllowOverride None
              deny from all
        </Location>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
    
    JkWorkersFile "/etc/libapache2-mod-jk/workers.properties"
    JkLogFile "/var/log/tomcat5/mod_jk.log"
    JkMount /*.jsp ajp13_worker
</VirtualHost>


Als ik naar de virtual host jsp.test surf dan word alle html mooi geserveerd maar zodra ik naar een jsp pagina ga krijg ik de volgende error.
code:
1
2
3
4
5
6
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@jsp.test and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
________________________________________
Apache/2.0.54 (Debian GNU/Linux) mod_jk/1.2.14 Server at jsp.test Port 80

Blijkbaar is er toch iets niet juist ingesteld maar ik heb geen idee wat. 8)7

Hopelijk kunnen jullie helpen.

[ Voor 9% gewijzigd door Antediluvian op 30-11-2005 04:12 ]


  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 09-02 10:57
wat staat er in je apache2 log en in je tomcat log ???
Ik heb zoiets geloof ik op mun server draaien maar ik heb er ook een tijd mee zitten kloten

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 13-01 23:54
Ik heb ook de connector in /etc/tomcat5/server.xml veranderd naar
XML:
1
2
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

zoals dit staat in de server-full.xml die bij de tomcat package zit.

Even alle logs op een rij. Dus eerst start ik tomcat en dan apache2
/var/log/tomcat5/catalina_2005-12-01.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Using CATALINA_BASE:   /var/lib/tomcat5
Using CATALINA_HOME:   /usr/share/tomcat5
Using CATALINA_TMPDIR: /var/lib/tomcat5/temp
Using JAVA_HOME:       /usr/lib/java/
Using Security Manager
Dec 1, 2005 2:27:25 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Dec 1, 2005 2:27:25 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1209 ms
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardService start
INFO: Starting service Tomcat-Standalone
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.0
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardHost getDeployer
INFO: Create Host deployer for direct deployment ( non-jmx )
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:/var/lib/tomcat5/conf/Catalina/localhost/balancer.xml
Dec 1, 2005 2:27:26 AM org.apache.commons.beanutils.MethodUtils getMatchingAccessibleMethod
WARNING: Cannot use JVM pre-1.4 access bug workaround due to restrictive security manager.
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:/var/lib/tomcat5/conf/Catalina/localhost/tomcat-docs.xml
Dec 1, 2005 2:27:26 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:/var/lib/tomcat5/conf/Catalina/localhost/admin.xml
Dec 1, 2005 2:27:28 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:/var/lib/tomcat5/conf/Catalina/localhost/manager.xml
Dec 1, 2005 2:27:29 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path  from URL file:/var/lib/tomcat5/webapps/ROOT
Dec 1, 2005 2:27:29 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /servlets-examples from URL file:/var/lib/tomcat5/webapps/servlets-examples
Dec 1, 2005 2:27:29 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /jsp-examples from URL file:/var/lib/tomcat5/webapps/jsp-examples
Dec 1, 2005 2:27:29 AM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /webdav from URL file:/var/lib/tomcat5/webapps/webdav
Dec 1, 2005 2:27:29 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8180
Dec 1, 2005 2:27:29 AM org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
Dec 1, 2005 2:27:29 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=1/113  config=/var/lib/tomcat5/conf/jk2.properties
Dec 1, 2005 2:27:29 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3797 ms
Vooral regel 39 vind ik hier vreemd vreemd.


/var/log/tomcat5/localhost_2005-12-01.log
code:
1
2
3
4
5
2005-12-01 02:27:26 StandardContext[/balancer]org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2005-12-01 02:27:29 StandardContext[/servlets-examples]ContextListener: contextInitialized()
2005-12-01 02:27:29 StandardContext[/servlets-examples]SessionListener: contextInitialized()
2005-12-01 02:27:29 StandardContext[/jsp-examples]ContextListener: contextInitialized()
2005-12-01 02:27:29 StandardContext[/jsp-examples]SessionListener: contextInitialized()


/var/log/apache2/error.log
code:
1
[Thu Dec 01 02:27:49 2005] [notice] Apache/2.0.54 (Debian GNU/Linux) mod_jk/1.2.14 configured -- resuming normal operations


/var/log/apache2/mod_jk.log
code:
1
2
3
4
[Thu Dec 01 02:27:49 2005] [error] init_jk::mod_jk.c (2356): Initializing shm:/etc/apache2/logs/jk-runtime-status errno=2
[Thu Dec 01 02:27:49 2005] [error] init_jk::mod_jk.c (2356): Initializing shm:/etc/apache2/logs/jk-runtime-status errno=2
[Thu Dec 01 02:27:49 2005] [error] jk_child_init::mod_jk.c (2312): Attachning shm:/etc/apache2/logs/jk-runtime-status errno=2
[Thu Dec 01 02:27:49 2005] [error] jk_child_init::mod_jk.c (2312): Attachning shm:/etc/apache2/logs/jk-runtime-status errno=2

  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 13-01 23:54
Ondertussen heb ik het geheel werkende gekregen, maar ik heb ik een ander probleem

Ik heb ik tomcat 2 virtual hosts geconfigureerd
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Host name="servlet.tomcat.local" debug="0" unpackWARs="true">

  <Context path="" docBase="/var/lib/tomcat5/webapps/servlets-examples" debug="1"/>

  <!-- Logger shared by all Contexts related to this virtual host. -->
  <Logger className="org.apache.catalina.logger.FileLogger"
          directory="logs" prefix="servlet.tomcat.local_" suffix=".log"
          timestamp="true"/>
</Host>

<Host name="jsp.tomcat.local" debug="0" unpackWARs="true" autoDeploy="true">

  <Context path="" docBase="/var/lib/tomcat5/webapps/jsp-examples" debug="1"/>

  <!-- Logger shared by all Contexts related to this virtual host. -->
  <Logger className="org.apache.catalina.logger.FileLogger"
          directory="logs" prefix="jsp.tomcat.local_" suffix=".log"
          timestamp="true"/>

</Host>

en in apache ook 2 virtual hosts

jsp.test
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<VirtualHost *>
        ServerAdmin webmaster@jsp.test

        DocumentRoot /var/lib/tomcat5/webapps/
        ServerName jsp.test
        ServerAlias www.jsp.test

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /var/lib/tomcat5/webapps/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                RedirectMatch ^/$ /jsp-examples/
        </Directory>

        ErrorLog /var/log/apache2/error.log
        LogLevel notice

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

        JkMount /*.jsp jsp_worker
</VirtualHost>

servlet.test
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<VirtualHost *>
        ServerAdmin webmaster@servlet.test

        DocumentRoot /var/lib/tomcat5/webapps/servlets-examples/
        ServerName servlet.test
        ServerAlias www.servlet.test

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /var/lib/tomcat5/webapps/servlets-examples>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log
        LogLevel notice

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

        JkMount /*.jsp servlet_worker
        JkMount /servlet/* servlet_worker
</VirtualHost>


Mijn workers.properties zijn zo geconfigureerd
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
workers.tomcat_home=/usr/share/tomcat5
workers.java_home=/usr/lib/java
ps=/


#
#------ worker list ------------------------------------------
#---------------------------------------------------------------------
#
worker.list=jsp_worker,servlet_worker

#
#------ jsp_worker WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#
worker.jsp_worker.port=8009
worker.jsp_worker.host=jsp.tomcat.local
worker.jsp_worker.type=ajp13
worker.jsp_worker.cachesize=10
worker.jsp_worker.cache_timeout=600
worker.jsp_worker.socket_keepalive=1
worker.jsp_worker.reclycle_timeout=300

#
#------ servlet_worker WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#
worker.servlet_worker.port=8009
worker.servlet_worker.host=servlet.tomcat.local
worker.servlet_worker.type=ajp13

worker.servlet_worker.lbfactor=50
worker.servlet_worker.cachesize=10
worker.servlet_worker.cache_timeout=600
worker.servlet_worker.socket_keepalive=1
worker.servlet_worker.reclycle_timeout=300


#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
#---------------------------------------------------------------------
#
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13_worker, test_worker


en om dit geheel te doen werken; de /etc/hosts file
code:
1
2
3
127.0.0.1       localhost.localdomain   localhost       unicorni
127.0.0.1       jsp.tomcat.local
127.0.0.1       servlet.tomcat.local


Nu heb ik het volgende probleem:

Met de standaard host "localhost" in server.xml uitgeschakeld werken www.servlet.test en www.jsp.test niet correct. Als er een jsp of servlet word aangevraagt dan krijg ik een blanco pagina maar geen error. 8)7
Als ik surf naar http://servlet.tomcat.local:8180/ of naar http://jsp.tomcat.local:8180/ werkt alles perfect.


Als ik de standaard host "localhost" in server.xml terug inschakel dan doet het volgende zich voor.
http://servlet.tomcat.local:8180/ en http://jsp.tomcat.local:8180/ doen het nog steeds goed.

www.jsp.test dat automatish geredirect word naar http://www.jsp.test/jsp-examples/ werkt ook perfect.

echter als ik surf naar een servlet van www.servlet.test dan krijg ik deze error pagina van tomcat:
code:
1
2
3
4
5
6
7
8
HTTP Status 404 - /servlet/HelloWorldExample

type Status report

message /servlet/HelloWorldExample

description The requested resource (/servlet/HelloWorldExample) is not available.
Apache Tomcat/5.0


Als ik naar servlet.test/servlets-examples/servlet/HelloWorldExample surf word deze servlet wel correct weer gegeven.

Het lijkt er op dat de workers die in heb geconfigureerd totaal geen gebruik maken van de virtual hosts die ik heb aangemaakt in tomcat. |:( Volgens mij moet dit kunnen maar ik weet het even niet meer. Ik ben al tonnen voorbeelden en howto's gevonden maar geen enkele die dit probeert te realiseren.

Hopelijk kunnen jullie mij hier helpen.

  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 13-01 23:54
:) :) :) :) :) :) :) :)

Probleem gevonden

De workers werken idd niet met de virtual hosts van Tomcat.
Je moet er dus gewoon voor zorgen dat er tomcat dezelfde virtual host is gedefiniëerd is zoals in apache.

De oplossing was dus in server.xml de hosts te veranderen naar:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Host name="www.servlet.test" debug="0" unpackWARs="true">
  <Alias>www.servlet.test</Alias>
  <Context path="" docBase="/var/lib/tomcat5/webapps/servlets-examples" debug="1"/>

  <!-- Logger shared by all Contexts related to this virtual host. -->
  <Logger className="org.apache.catalina.logger.FileLogger"
          directory="logs" prefix="servlet.tomcat.local_" suffix=".log"
          timestamp="true"/>
</Host>

<Host name="jsp.test" debug="0" unpackWARs="true" autoDeploy="true">
  <Alias>www.jsp.test</Alias>
  <Context path="" docBase="/var/lib/tomcat5/webapps/jsp-examples" debug="1"/>

  <!-- Logger shared by all Contexts related to this virtual host. -->
  <Logger className="org.apache.catalina.logger.FileLogger"
          directory="logs" prefix="jsp.tomcat.local_" suffix=".log"
          timestamp="true"/>

</Host>

Ook in de workers.properties file de volgende aanpassingen gemaakt
code:
1
2
worker.jsp_worker.host=localhost
worker.servlet_worker.host=localhost


en in de /etc/hosts file alle aanpassingen ongedaan maken.