ugrás a tartalomhoz

default context helyett 404- es hibaoldal hogyan ?(Apache 2.2 Tomcat 7 mod_jk )

troy1979 · 2012. Ápr. 19. (Cs), 14.33
sziasztok

Az alábbi konfigurációval rendelkezem:

- apache2.2
- tomcat7
- a 2 szoftver az apache mod_jk modulja segitségével van integrálva

alapvetően 1 apache virtualHost-hoz a tomcat van hozzárendelve mint tényleges kiszolgáló

a tomcat-en több web application is van , köztük kiemelten a ROOT

hogyan tudnám úgy konfigurálni az apache-ot vagy a tomcat-et, vagy a mod_jk-t hogyha olyan url-t irok be amihez nincs web application társitva, akkor a tomcat ne a default context-et , vagyis a ROOT web-app-ot jelenitse meg hanem jelenitsem meg mondjuk 1 404-es hiba oldalt, vagy ami még jobb lenne talán ha az apache-ot tudná értesiteni, hogy nincs ilyen web-app , és az apache tudna megjeleniteni

konkrétan valami ilyesmire gondolok:

- valami.mycompany.com, vagy valami.mycompany.com/ --> ROOT web-app
- valami.mycompany.com/a --> HIBAOLDAL (mivel NINCS ilyen web-app a tomcat-en belül)
- valami.mycompany.com/test jelenitse meg a test web-appot (mert VAN ilyen webapp a a tomcat-en belül)

vagyis hogyan tudnám úgy konfigurálni a tomcat-et, vagy az apache-ot , vagy esetleg a mod_jk ( nem tudom, hogy pontosan mit hol hogyan kéne beállitani)

- hogyha van a beirt url/uri-nek megfelelő tomcat web-app akkor az jelenjen meg
- ha meg nincs ilyen web-app akkor ne a default web-app jelenjen meg, hanem csak 1 hiba üzenet/hiba-oldal ?

Lényeges információ lehet , hogy az apache document root-ja és a tomcat webapps könyvtára között nincs átfedés

Előre is köszönöm a segitségeteket...
 
1

Játszottam

janoszen · 2012. Ápr. 20. (P), 22.38
Jatszottam valami ilyesmivel multkor, de csak holnap este jutok el odaig, hogy meg is nezzem.
2

Több megoldás

janoszen · 2012. Ápr. 22. (V), 15.04
Na, eljutottam egy kis doksi bújásig. Szerintem, a legegyszerűbb módozat az, hogy az Apache HTTPd-t úgy konfigurálod fel, hogy csak azokat a domaineket továbbítsa (mod_proxy-val vagy mod_jk-val) amikhez tartozik tartalom. Az Apache default vhostnak azt használja, ami elsőként van a konfigurációban. Én itt azt szoktam csinálni, hogy létrehozok egy default nevű vhostot, ami vagy hibaoldalt, vagy átirányítást tartalmaz.

A másik megoldás, hogy a Contextben megadsz egy default virtualhostot és az pedig egy olyan appbase-re mutat, ahol valami üres alkalmazás van. (Aki a Tomcat virtual host configját kitalálta, az pedig igazán elmehetne valahova melegebb éghajlatra.)
3

köszönöm a segitséget

troy1979 · 2012. Ápr. 24. (K), 14.15
Ezek szerint nincs jó/szép megoldása a dolognak

Végül is az a megoldás született , hogy a webalkalmazás nem a ROOT webalkalmazás , hanem a konkrét nevet adtam neki, és a mod_jk config file-jában csak ehhez a web-apphoz/url-hez rendeltem a tomcat-et

illetve csak azok a web-app-ok fognak müködni az apache-on keresztül , amik explicit módon szerepelnek a ebben a config file-ban

egy hülye kérdés nincs esetleg valamilyen másik servlet/jsp container, amit esetleg jobban lehet konfigurálni mint a tomcat-et?

tudom, hogy ez a servlet/jsp specifikáció referencia implementációja , meg álllitólag a legrégibb és a legjobb,de azért mégis hátha van jobb :)

Illetve ha már az ördög ügyvédjét játszom, az apache-ot esetleg nem lehetne 1 másik web szerverre cserélni ami ugyanúgy együtt tud müködni a java-s container-ekkel/php/python/ruby-val ? :)

Mert az 1 dolog , hogy most java van a szerver-oldalon , de ez a jővőben még könnyen megváltozhat...
4

szerverek

Poetro · 2012. Ápr. 24. (K), 15.41
  • JBoss
  • Jetty
  • GlassFish
  • IBM WebSphere Application Server
5

Bármire

janoszen · 2012. Ápr. 24. (K), 17.57
Bármire le tudod cserélni az Apache HTTPd-t, ami tud proxyzni. Én mondjuk az nginxet javaslom, mert az egy igen barátságos jószág. Az egyetlen kitétel, hogy a Tomcatot HTTP-re kell felkonfigurálni.