PDA

Bekijk Volledige Versie : Apache + Tomcat



Kveldulv
01/04/06, 23:02
Er zullen er misschien al wel een paar vloeken met de topic title :p
Ben dus bezig op ne RH Enterprise ES 4 met Apache 2.0.55 en Tomcat 5.0.28.
Eerst Apache + php + mysql installed en da marcheert allemaal. Niet met de RH rpm's dus apache staat in /usr/local/apache2.

Dan ben ik verder gegaan met deze how to: http://www.meritonlinesystems.com/docs/apache_tomcat_redhat.html
Rekening houdend met verschillende paths natuurlijk.

Probleem is dat ik altijd in /usr/local/apache2/htdocs uit kom als ik naar een domein surf, ongeacht de VirtualHosts.

Deze VirtualHost heb ik ingesteld.


NameVirtualHost 127.0.0.1:7016

<VirtualHost 127.0.0.1:7016>
ServerAdmin webmaster@domein.be
Servername domein.be
DocumentRoot /home/tomcat/webapps/domein.be/hw
ErrorLog /home/tomcat/webapps/domein.be/logs/error_log
CustomLog /home/tomcat/webapps/domein.be/logs/access_log common
JkMount /*.jsp wrkr
JkMount /servlet/* wrkr
# Deny direct access to WEB-INF
<LocationMatch ".*WEB-INF.*">
AllowOverride None
deny from all
</LocationMatch>
</VirtualHost>



Apache staat voorlopig op poort 7016. Telenet you know. Komt wel terug op 80 te staan tegen dat hij naar het datacenter moet.
domein.be is in feite mijn familienaam.be. Hier effe gecensureerd wegens privacy redenen ;)
A record van het domein is ingesteld op mijn ip. Ik gebruik dat al ne hele tijd voor andere domeinen zo naar mijn testserver te brengen die hier ook staat (slackware, apache op 8080). Dat werkt dus ik weet dat het probleem op deze server zit.

Probleem is dus dat als ik naar http://domein.be:7016/test.html surf dat ik ne 404 krijg. test.html staat in /home/tomcat/webapps/domein.be/hw.
Ik kan via http://domein.be:7016 wel aan de bestanden die in /usr/local/apache2/htdocs staan. De VirtualHost heeft dus geen effect.

Morgen zal ik alles nog eens stap voor stap doorlopen maar ben er vrij zeker van dat alles ingesteld staat zoals in de how to gezegd is.

Wat kan er mis zijn? Help :huh:

luser
01/04/06, 23:26
Wat staat er in de server.xml van je tomcat?

EDIT: Ook een goede http://www.howtoforge.com/apache2_tomcat5_mod_jk

Kveldulv
02/04/06, 01:33
server.xml heb ik hermaakt zoals in de howto gezegd:


<Server port="8005" shutdown="0fbb9aebcbfbef203eca71b6be367859" debug="0">

<Service name="Tomcat-Apache">

<Connector address="127.0.0.1"
port="8009"
minProcessors="5"
maxProcessors="75"
enableLookups="false"
protocol="AJP/1.3"
debug="0"/>

<Engine name="appserver"
debug="0"
defaultHost="{YOUR_DOMAIN}">

<Host name="{YOUR_DOMAIN}"
appBase="/home/tomcat/webapps"
autoDeploy="false"
deployOnStartup="false"
upackWARs="false"
deployXML="true"
debug="0"/>

</Engine>

</Service>

</Server>

Zal die andere morgen eens bekijken :)

gjtje
02/04/06, 02:06
En als je 127.0.0.1 vervangt door *? Kan mij niet voorstellen dat domein.be verwijst naar localhost want dan kom je als bezoeker nooit aan natuurlijk.

luser
02/04/06, 02:36
Nopz moet zo.

De connector module in apache zal alles met een bep string (instelbaar, bv /jsp/ of *.jsp etc, zie JkMount) forwarden naar de tomcat op localhost.

Draai een aantal van deze systemen, werkt gewoon goed.


EDIT: In de virtualhost @ apache staat het idd fout :) Dacht ff dat je over de server.xml bezig was.

Kveldulv
02/04/06, 13:15
The argument for the NameVirtualHost directive must match exactly the argument for the VirtualHost directive (127.0.0.1:80).

Heb die 127.0.0.1 maar gehouden daar. Lijkt me ook niet logisch maar als ik het vervang door * dan krijg ik overal een 403 Forbidden.

wonko
02/04/06, 13:24
Die 127.0.0.1 lijkt me compleet fout, tenzij je surft op dezelfde machine als waar je apache op staat, en in je /etc/hosts file je domeinnaam naar 127.0.0.1 verwezen wordt.

Zet eens je namevirtualhost op *:poort en je virtualhost ook op *:poort. Zorg ervoor dat je virtualhost eerst werkt, voor je wenst verder te gaan met je koppeling tussen tomcat en apache (dus, je jkmount stukken eruit, en zorgen dat je een andere pagina krijgt als je domain.be/foo.html surft dan ip/foo.html).

Dat apache dit lokaal naar tomcat doorstuurt, heeft niets te maken met je virtualhostconfig in apache zelf.

Kveldulv
02/04/06, 14:06
Heb nu alles van tomcat uit httpd.conf gehaald. 2 verschillende VirtualHosts ingesteld en die werken.
http://ip geeft wel hetzelfde als de eerste virtualhost. Wat op mijn slackware bak niet zo is. Maar dat is nog geen ramp. De 2 virtualhosts onderling werken wel.

Ik ga nu die howto van luser eens volgen met tomcat 5.5.

Of misschien een andere oplossing.
Alles naar apache, en één domein naar tomcat.
Want het is eigenlijk zo. De hoofdsite is een jsp/servlet site. En daarnaast komen nog een aantal php sites. Het zou dus opgesplitst mogen worden, dat is nog geen ramp.

mod_rewrite dan? Hoe?

Het is gelukt met die howto van luser! Wel nog effe zitten zoeken omdat er geen verbinding kon gemaakt worden tussen apache en tomcat. Kwam door SELinux maar dat staat nu disabled en dan marcheert he :)

Thx!!