Avatar billede hmann Nybegynder
08. februar 2007 - 00:10 Der er 24 kommentarer og
2 løsninger

Tomcat til at virke udefra (udover localhost)

Hej

Jeg har en Apache webserver kørende på port 80.
Så har jeg en Tomcat kørende (port 8080) og den "hænger sammen med" Apache-serveren igennem en connector (jk_mod).

Dvs at jeg kan nu afvikle mine .jsp-sider både ved at skrive
http://localhost:8080/xxxx/test.jsp
eller
http://localhost/xxxx/test.jsp

Nu kommer det næste skridt så. Hvordan kommer jeg til at kunne se min test.jsp side udefra (min http server er i forvejen offentlig tilgængelig)

Har forsøgt at rode med <host> containeren i server.xml filen under tomcats /conf, men kan ikke få det til at virke :(

vil være meget taknemlig for alt hjælp som lede mig til svaret!
Avatar billede arne_v Ekspert
08. februar 2007 - 01:09 #1
du skal vel have tilføjet en host sektion til server.xml

har du læst http://www.eksperten.dk/artikler/675 ?
Avatar billede hmann Nybegynder
08. februar 2007 - 09:41 #2
Nu har jeg læst artiklen og også fulgt linket til tomcat-siden om host-elementet. Men kan stadig ikke få det til at virke.

i server.xml er der allerede en host sektion hvor der står localhost. Jeg går udfra at der hvor host sektionen slutter (</host>), skal der indsættes en mere?

sådan?:

<Host name="www.minside.dk" debug="0" appBase="c:/Programmer/Apache Group/Tomcat4/webapps/test" unpackWARs="true" autoDeploy="true">

så vil tomcat'en ikke starte op igen..

tillægsspørgsmål:
skal den listener jeg har under localhost også med under den nye host sektion?

<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" forwardAll="false" modJk="C:/Programmer/Apache Group/Apache2/modules/mod_jk.dll" />
Avatar billede hmann Nybegynder
08. februar 2007 - 09:42 #3
jeg fik tomcat'en til at starte igen - havde glemt </host> efter den nye sektion..

men det fungerer desværre stadig ikke
Avatar billede hmann Nybegynder
08. februar 2007 - 09:52 #4
lige for at præcisere, så skal det hele gerne ende op med at man udefra kan se min jsp side ved at skrive: http://www.minside.dk/xxxx/test.jsp
Avatar billede hmann Nybegynder
08. februar 2007 - 23:16 #5
bump..
nogen der kan hjælpe mig videre?
Avatar billede arne_v Ekspert
09. februar 2007 - 04:08 #6
hvis din router/firewall forwarder port 80 til din Apache

hvis Apache har en virtual host for domain og har JkMount'et URL for det domain

hvis Tomcat har en host definition for den

hvis den forwardede URL faktisk findes i web app i Tomcat

så bør det virke !
Avatar billede arne_v Ekspert
09. februar 2007 - 04:09 #7
hvis det ikke virker (og der skal bar en lille bitte ting til for at det ikke
virker) så
prøv og post de relevante udsnit af config filerne
Avatar billede hmann Nybegynder
09. februar 2007 - 08:08 #8
routeren forwarder som den skal.. check

skal apachen have en virtual host, når der kun er tale om en enkelt domain??
selve apachen virker fint ved at man udefra skriver www.minside.dk
skal der en virtual host i httpd.conf vedr. port 8080 eller hvad mener du?

ang. JkMount'et URL, er jeg ikke med på hvad det vil sige..

tomcat'en har en host definition i server.xml, HVIS nedenstående er tilstrækkeligt?
-----------
<Host name="www.gloom.dk" debug="0" appBase="c:/Programmer/Apache Group/Tomcat4/webapps/test" unpackWARs="true" autoDeploy="true">

<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" forwardAll="false" modJk="C:/Programmer/Apache Group/Apache2/modules/mod_jk.dll" />

</Host>
-----------

"hvis den forwardede URL faktisk findes i web app i Tomcat"

hvis du med det mener at der rent faktisk ligger noget i C:\Programmer\Apache Group\Tomcat4\webapps\test    - så ja, det gør der.


Undrer mig at man ikke kan finde nogle gode guides/how to's omkring dette. Det må da være nogle skridt som alle der selv hoster deres JSP sider skal igennem, hvis de bruger apache + tomcat setup'et
Avatar billede arne_v Ekspert
09. februar 2007 - 17:51 #9
Apache skal ihvertfald processe for det domain du bruger.

JkMount fortæller Apache hvilke URL's den skal forwarde til Tomcat. Dem som
ikke forwardes forsøger Apache at processe selv.
Avatar billede arne_v Ekspert
09. februar 2007 - 17:52 #10
Umiddelbart lyder det som der er JkMount der mangler.
Avatar billede hmann Nybegynder
09. februar 2007 - 21:03 #11
okay jeg forsøger at søge lidt på nettet efter JkMount og ser om jeg kan komme frem til noget den vejdet host definition jeg har skrevet ovenfor - er det tilstrækkeligt (i server.xlm) ?
Avatar billede arne_v Ekspert
09. februar 2007 - 21:40 #12
JkMount er såmæmd beskrevet i min artikel

dit Host tag ser fint ud

jeg er noget skeptisk overfor det Listener tag - det har jeg aldrig brugt
Avatar billede hmann Nybegynder
09. februar 2007 - 21:46 #13
er lidt ny indenfor tomcat/JSP så det med listeneren er udelukkende noget jeg har med fordi jeg har fulgt nogle online guides til hvordan man får tomcat'en til at spille sammen med apachen..
Avatar billede hmann Nybegynder
09. februar 2007 - 21:54 #14
har fundet det med JkMount i mod_jk.conf filen nu, men hjælper intet..
måske jeg må starte helt fra bunden igen, for at få det hele til at spille rigtigt sammen?

troede bare jeg var tæt på, da jeg ved at følge diverse guider og læsestof (inkl det med listeneren) var i stand til at afvikle JSP sider på min egen maskine - eneste jeg mangler er sådan set at de kan ses udefra..
Avatar billede arne_v Ekspert
10. februar 2007 - 01:51 #15
prøv lige og post:
  * de relevante konfigurations udsnit
  * den URL du tester med
  * hvilken fejl du får
  * hvad der logges i de 2 access log's
Avatar billede hmann Nybegynder
10. februar 2007 - 10:50 #16
inden jeg poster alle mulige konfigurations-afsnit, så har jeg måske en ide..
Hvad er det som afgør hvad der kommer med i den autogenererede "jk_mod.conf" under /conf/auto/ ?

når tomcat'en genstartes genereres denne fil..

jeg kan se at under virtual host containeren står der en masse, men under www.gloom.dk containeren står der stort set intet:

mod_jk.conf
-----------
########## Auto generated on Sat Feb 10 10:24:49 CET 2007##########

<IfModule !mod_jk.c>
  LoadModule jk_module "C:/Programmer/Apache Group/Apache2/modules/mod_jk.dll"
</IfModule>

JkWorkersFile "C:/Programmer/Apache Group/Tomcat4/conf/jk/workers.properties"
JkLogFile "C:/Programmer/Apache Group/Tomcat4/logs/mod_jk.log"

JkLogLevel emerg



<VirtualHost www.gloom.dk>
    ServerName www.gloom.dk
</VirtualHost>

<VirtualHost localhost>
    ServerName localhost

    #################### localhost:/manager ####################

    # Static files
    Alias /manager "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/manager"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/manager">
        Options Indexes FollowSymLinks
        DirectoryIndex index.html index.htm index.jsp
    </Directory>


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

    <Location "/manager/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/manager/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/manager/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /manager/*.jsp  ajp13
    JkMount /manager/html/*  ajp13
    JkMount /manager/deploy  ajp13
    JkMount /manager/serverinfo  ajp13
    JkMount /manager/undeploy  ajp13
    JkMount /manager/resources  ajp13
    JkMount /manager/remove  ajp13
    JkMount /manager/start  ajp13
    JkMount /manager/sessions  ajp13
    JkMount /manager/reload  ajp13
    JkMount /manager/list  ajp13
    JkMount /manager/stop  ajp13
    JkMount /manager/install  ajp13
    JkMount /manager/roles  ajp13

    #################### localhost:/webdav ####################

    # Static files
    Alias /webdav "C:/Programmer/Apache Group/Tomcat4/webapps/webdav"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/webdav">
        Options Indexes FollowSymLinks
        DirectoryIndex index.jsp index.html index.htm
    </Directory>


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

    <Location "/webdav/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/webdav/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/webdav/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /webdav/*.jsp  ajp13
    JkMount /webdav/*  ajp13

    #################### localhost:/examples ####################

    # Static files
    Alias /examples "C:/Programmer/Apache Group/Tomcat4/webapps/examples"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/examples">
        Options Indexes FollowSymLinks
        DirectoryIndex index.html index.htm index.jsp
    </Directory>


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

    <Location "/examples/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/examples/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/examples/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /examples/jsp/security/protected/j_security_check  ajp13
    JkMount /examples/servletToJsp  ajp13
    JkMount /examples/*.jsp  ajp13
    JkMount /examples/snoop  ajp13
    JkMount /examples/SendMailServlet  ajp13
    JkMount /examples/servlet/*  ajp13
    JkMount /examples/CompressionTest  ajp13

    #################### localhost:/tomcat-docs ####################

    # Static files
    Alias /tomcat-docs "C:/Programmer/Apache Group/Tomcat4/webapps/tomcat-docs"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/tomcat-docs">
        Options Indexes FollowSymLinks
        DirectoryIndex index.html index.htm index.jsp
    </Directory>


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

    <Location "/tomcat-docs/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/tomcat-docs/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/tomcat-docs/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /tomcat-docs/*.jsp  ajp13

    #################### localhost:/test ####################

    # Static files
    Alias /test "C:/Programmer/Apache Group/Tomcat4/webapps/test"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/test">
        Options Indexes FollowSymLinks
        DirectoryIndex index.html index.htm index.jsp
    </Directory>


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

    <Location "/test/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/test/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/test/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /test/*.jsp  ajp13

    #################### localhost:/admin ####################

    # Static files
    Alias /admin "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/admin"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/admin">
        Options Indexes FollowSymLinks
        DirectoryIndex index.html index.htm index.jsp
    </Directory>


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

    <Location "/admin/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/admin/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/../server/webapps/admin/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /admin/j_security_check  ajp13
    JkMount /admin/*.jsp  ajp13
    JkMount /admin/*.do  ajp13
</VirtualHost>

------------------------------
jeg ville da gå udfra at der under www.gloom.dk skulle stå noget i den her stil:

<VirtualHost www.gloom.dk>

    ServerName www.gloom.dk
   
    #################### www.gloom.dk:/test ####################

    # Static files
    Alias /test "C:/Programmer/Apache Group/Tomcat4/webapps/test"

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/test">
        Options Indexes FollowSymLinks
        DirectoryIndex index.html index.htm index.jsp
    </Directory>


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

    <Location "/test/META-INF/*">
        AllowOverride None
        deny from all
    </Location>
    #
    # Use Directory too. On Windows, Location doesn't work unless case matches
    #
    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/test/WEB-INF/">
        AllowOverride None
        deny from all
    </Directory>

    <Directory "C:/Programmer/Apache Group/Tomcat4/webapps/test/META-INF/">
        AllowOverride None
        deny from all
    </Directory>

    JkMount /test/*.jsp  ajp13       
   
</VirtualHost>

----
mit spørgsmål er så, at efter som denne fil er autogenereret, må det jo være et andet sted der skal ændres noget, for at den bliver genereret rigtigt?

vil du præcisere hvad det er for nogle konfigurations-afsnit du gerne vil se, så poster jeg dem. Ingen grund til at jeg smider alt muligt op som du alligevel ikke kan se noget ud af :)
Avatar billede arne_v Ekspert
11. februar 2007 - 18:43 #17
ja - du skal have nogle JkMount ind i din www.gloom.dk virtual host

den forwarder kun /test/*.jsp til Tomcat og det er med stor sandsynlighed for lidt
Avatar billede arne_v Ekspert
11. februar 2007 - 18:43 #18
og den fil skal ikke auto genereres - det er en man retter i manuelt
Avatar billede hmann Nybegynder
11. februar 2007 - 19:36 #19
ok i min opsætning bliver den fil autogenereret??
har fulgt diverse guides om at sætte tomcat + connector op sammen med min apache og det virker jo fint med localhost..

er som sagt villig til at starte fra bunden igen (installere tomcat + connector + redigere diverse configs), hvis det er det som skal til for at få det til at virke.. vil meget gerne have det til at virke og forstå hvordan og hvorfor..

i store træk er det jeg har gjort indtil videre:

1) installeret tomcat'en
2) installeret en connector (jk)
3) testet at det virker som det skal med localhost

som i denne guide (også der jeg har det med listeneren fra):
http://johnturner.com/howto/apache2-tomcat4129-jk-winxp-howto.html

men måske er der punkter som ikke er nødvendige/punkter som mangler?

hvis du har tid til at ridse de punkter man skal igennem op, for at få det til at virke udefra, startende med installation af tomcat, så vil jeg prøve forfra, så jeg er sikker på at alle mine conf's er rigtige..

eftersom min jk_mod.conf bliver autogenereret ved genstart af tomcat og du skriver at det ikke er meningen, så må der jo være nogle uoverensstemmelser i opsætningen
Avatar billede hmann Nybegynder
19. februar 2007 - 10:54 #20
nå, jeg må vist igang fra bunden - skal have det til at virke.. ikke meget sjov ved kun at kunne afvikle sine JSP sider på localhost og ikke udefra :(
Avatar billede hmann Nybegynder
22. februar 2007 - 09:42 #21
så er det vist lukketid.. arne_v smid et svar så får du point for din tid/hjælp..
Avatar billede arne_v Ekspert
22. februar 2007 - 16:20 #22
ok
Avatar billede hmann Nybegynder
22. februar 2007 - 18:23 #23
håber 100 er okay.. fandt trods alt ikke ud af det.. desværre

undrer mig stadig over at man ikke kan finde nogle vejledninger omkring hvordan man sætter tingene op så man selv kan hoste jsp-filer.. også så de kan tilgåes "udefra"
Avatar billede arne_v Ekspert
22. februar 2007 - 18:50 #24
At der ingen vejledninger er skydlkes formentligt at normalt er det ikke et
problem.

Eksemplerne fra min artikel er testet og de virkede uden problemer hos mig.
Avatar billede arne_v Ekspert
22. februar 2007 - 18:56 #25
men mod_jk og mod_jk2's dokumentation er ekstremt daarlig
Avatar billede hmann Nybegynder
22. februar 2007 - 21:23 #26
jeg må gennemgå din artikel slavisk og forsøge igen..
det skal jo virke.. tak for input i hvert fald!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester