Tomcat parallel zu Apache

Apache, Lighttpd, nginx, Cherokee
Post Reply
bjmicha
Posts: 12
Joined: 2006-02-09 17:40
 

Tomcat parallel zu Apache

Post by bjmicha »

Hallo zusammen,

auf meinem Server läuft Apache als Webserver.
Damit ich mit Servlets und JSPs arbeiten kann, würde ich gerne Tomcat parallel zum Apache installieren.
Gibt es dabei etwas bestimmtes zu beachten? Hat eventuell jemand ein Howto/Tutorial dazu?

Vielen Danke!
Michael
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: Tomcat parallel zu Apache

Post by duergner »

Ne i.d.R. geht das sehr gut. Am besten den Tomcat nicht direkt ansprechen lassen, sondern mit dem mod_jk2 durch den Apache ansprechen. Dann hast du nur einen Einstiegspunkt von außen.
bjmicha
Posts: 12
Joined: 2006-02-09 17:40
 

Re: Tomcat parallel zu Apache

Post by bjmicha »

kenn mich leider mit dem apache noch nicht gut aus!
kann ich diesen mod einfach installieren und fertig?
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Tomcat parallel zu Apache

Post by Roger Wilco »

bjmicha wrote:Hat eventuell jemand ein Howto/Tutorial dazu?
http://www.howtoforge.com/apache2_tomcat5_mod_jk
schl
Posts: 343
Joined: 2003-02-05 11:26
Location: München/Unterschleißheim
 

Re: Tomcat parallel zu Apache

Post by schl »

Ein Blick hier in die FAQ hätte Dich zu diesem Tutorial geführt:

http://www.rootforum.org/faq/1_155_de.html

Leider haben es die Admin nach knapp 1,5 Jahren immer noch nicht hinbekommen den Code richtig darzustellen. Bei Fragen, einfach hier in diesem Thread posten...
bjmicha
Posts: 12
Joined: 2006-02-09 17:40
 

Re: Tomcat parallel zu Apache

Post by bjmicha »

Hallo,

habe den Tomcat jetzt installiert bekommen und er läuft auch.
Problem ist jetzt das der Apache nicht mehr richtig läuft. Es werden anscheinend alle URLs an den Tomcat weitergeleitet, obwohl ich in der httpd.conf nur bestimmt JkMounts eingetragen habe.

Wo sind denn genau die Punkte/Dateien in denen ich festlege welche URLs an den Tomcat geroutet werden?

Danke!
Michael
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: Tomcat parallel zu Apache

Post by duergner »

Bei Apache2/mod_jk2 werden die Mounts nicht mehr in der httpd.conf sondern in der worker2.properties eingetragen wenn ich korrekt im Kopf hab. Ansonsten können wir hier auch nur raten, wenn du keine Config Dateien und/oder Logfiles zur Verfügung stellst.
schl
Posts: 343
Joined: 2003-02-05 11:26
Location: München/Unterschleißheim
 

Re: Tomcat parallel zu Apache

Post by schl »

das o.g. Tutorial beschreibt aber die Verbindung via mod_jk nicht mod_jk2. Dort kann man nicht wie in der workers2.properties die URL's spezifizieren (afaik)...
bjmicha
Posts: 12
Joined: 2006-02-09 17:40
 

Re: Tomcat parallel zu Apache

Post by bjmicha »

hier mal die relevanten Teile aus den Config-Files!

httpd.conf

Code: Select all

# include tomcat config file
Include /usr/local/src/apache-tomcat-5.5.16/conf/auto/mod_jk.conf

# Where to find worker.properties
JkWorkersFile /etc/apache2/workers.properties

# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log Format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

#Globally deny access to the WEB-INF directory
<LocationMatch '.*WEB-INF.*'>
    AllowOverride None
    deny from all
</LocationMatch>


#VHOST bjmicha.com
<VirtualHost *:80>
[...]

JkMount /*/servlet/* worker1
JkMount /*.jsp worker1
</VirtualHost>
workers.properties

Code: Select all

workers.tomcat_home=/usr/lib/apache-tomcat
 
workers.java_home=/usr/lib/jdk
 
ps=/
 
worker.list=worker1
 
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
 
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker1
 
worker.inprocess.type=jni
 
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
 
worker.inprocess.cmd_line=start
 
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)
i386$(ps)classic$(ps)libjvm.so
 
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr
mod_jk.conf (wird automatisch beim Tomcat start erstellt)

Code: Select all

########## Auto generated on Wed Mar 08 22:15:56 CET 2006##########

<IfModule !mod_jk.c>
  LoadModule jk_module "/usr/lib/apache/mod_jk.so"
</IfModule>

JkWorkersFile "/etc/apache2/workers.properties"
JkLogFile "/usr/local/src/apache-tomcat-5.5.16/logs/mod_jk.log"

JkLogLevel emerg



<VirtualHost localhost>
    ServerName localhost

    JkMount /webdav ajp13
    JkMount /webdav/* ajp13

    JkMount /servlets-examples ajp13
    JkMount /servlets-examples/* ajp13

    JkMount /jsp-examples ajp13
    JkMount /jsp-examples/* ajp13

    JkMount /balancer ajp13
    JkMount /balancer/* ajp13

    JkMount /host-manager ajp13
    JkMount /host-manager/* ajp13

    JkMount /tomcat-docs ajp13
    JkMount /tomcat-docs/* ajp13

    JkMount /manager ajp13
    JkMount /manager/* ajp13
</VirtualHost>

<VirtualHost bjmicha.com>
    ServerName bjmicha.com]

    JkMount /fotos ajp13
    JkMount /fotos/* ajp13

    JkMount /jsp ajp13
    JkMount /jsp/* ajp13

    JkMount /cgi-bin ajp13
    JkMount /cgi-bin/* ajp13

    JkMount /secure ajp13
    JkMount /secure/* ajp13

    JkMount /ssl ajp13
    JkMount /ssl/* ajp13

    JkMount /cms ajp13
    JkMount /cms/* ajp13

    JkMount /report ajp13
    JkMount /report/* ajp13
</VirtualHost>
[/code]

server.xml

Code: Select all

<Server port="8005" shutdown="SHUTDOWN">
 
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
 
  <!-- Global JNDI resources -->
  <GlobalNamingResources>
 
    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
 
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />
 
  </GlobalNamingResources>
 
 
  <!-- Define the Tomcat Stand-Alone Service -->
  <Service name="Catalina">
 
    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned.  Each Connector passes requests on to the
         associated "Container" (normally an Engine) for processing.
    -->
 
    <!-- Define a non-SSL HTTP/1.1 Connector on port 2117 (default 8080) -->
    <Connector port="2117" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="5" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
 

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
 
    <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
    <!-- See proxy documentation for more information about using this. -->
    <!--
    <Connector port="8082"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" acceptCount="100" connectionTimeout="20000"
               proxyPort="80" disableUploadTimeout="true" />
    -->
 
    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host). -->
      
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost">
 
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
 
      <!-- Define the default virtual host -->
 
      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
 
        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
                 pattern="common" resolveHosts="false"/>
      </Host>
 
      <!-- www.domain1.com -->
      <Host name="www.bjmicha.com" appBase="/home/b/bjmicha.com/public_html"
        unpackWARs="true" autoDeploy="true">
 
        <Context path="" docBase="jsp-examples" debug="0" reloadable="true"/>
 
        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="web1_access_log." suffix=".txt"
                 pattern="common" resolveHosts="false"/>
      </Host>
 
      <Listener className="org.apache.jk.config.ApacheConfig"
                 modJk="/usr/lib/apache/mod_jk.so"
                 workersConfig="/etc/apache2/workers.properties"/>
 
    </Engine>
 
  </Service>
 
</Server>
bjmicha
Posts: 12
Joined: 2006-02-09 17:40
 

es klappt fast

Post by bjmicha »

So, ich habe es jetzt fast hinbekommen!
Der Hautpfehler war, das ich die AutoConfig Funktion aktiviert hatte. Dadurch wurde dann alles automatisch an den Tomcat geroutet!

Ein Problem habe ich aber noch. Wenn ich meine JkMount Einträge in der httpd.conf mache, erkennt Apache die anscheinent nur wenn ich sie außerhalb eines Virtuelles Hosts mache. Ich will aber für jeden virtuellen Host gesonderte Einstellungen machen was an den Tomcat geroutet werden soll.

Hier ein Auszug aus der httpd.conf:

Code: Select all

<VirtualHost *:80>
php_admin_value open_basedir /home/b/bjmicha.com/public_html/:/usr/local/lib/php:/tmp
DocumentRoot /home/b/bjmicha.com/public_html/
ServerName www.bjmicha.com
IndexOptions
DirectoryIndex index.htm index.html index.shtml start.htm start.html start.shtml index.php index.php3
ServerAlias bjmicha.com bjmichacom.h625965.serverkompetenz.net *.bjmicha.com bjmicha.de *.bjmicha.de
CustomLog "|/usr/local/visas/cronolog/cronolog --symlink=/usr/local/visas/logfiles/bjmicha.com/access_log --prev-symlink=/usr/local/visas/logfiles/bjmicha.com/current_access_log /usr/local/visas/logfiles/bjmicha.com/%Y/%m/%d/access_log" combined
SuexecUserGroup bjmichacom www
ScriptAlias /cgi-bin/ /home/b/bjmicha.com/public_html/cgi-bin/
JkMount /*.jsp ajp13
Was mache ich da falsch? Eigentlich will ich das bei dem virtuellen Host alle Dateien mit Endung .jsp an den Tomcat geroutet werden.
Post Reply