[Tomcat] problema con Host/Alias e Contesti

Discussione in 'Server Dedicati e VPS' iniziata da Django89, 14 Dicembre 2018.

  1. Django89

    Django89 Nuovo Utente

    Registrato:
    14 Dicembre 2018
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Salve a tutti,
    è la mia prima volta qui.

    Veniamo al dunque, ho sviluppato una webapp in jsp e deployata in Tomcat su un cloud server.


    A fine lavori, per rendere il sito raggiungibile tramite indirizzo "normale" (www.mio_dominio.it) ho fatto il port forward da 80 ad 8080 ed associato il dominio registrato per la webapp editando il file server.xml (in tomcat/conf), in questa maniera:

    Codice:
    <Host name="localhost"  appBase="webapps"...
        </Host>
            <Host name="mio_dominio.it" appBase="webapps" unpackWARs="true" autoDeploy="true">
                    <Alias>www.mio_dominio.it</Alias>
                    <Context path="" docBase="cartella_app" debug="0" privileged="true" />
                    <Context path="/app_data" docBase="/home/cloud/app_data" />
                    <Valve className="org.apache.catalina.valves.AccessLogValve"
                     directory="logs"   prefix="localhost_access_log." suffix=".txt"
                     pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false" />
            </Host>
        </Engine>
    Ok, funziona tutto bene, ma il problema è che ora è come se ci fossero due istanze della webapp in esecuzione:
    - una sotto: www.mio_dominio.it
    - e una sotto: www.mio_dominio.it/cartella_app

    Facendo un po di debug ho provato a stampare il risultato di application.getContextPath() ed infatti il risultato è che ci sono due contesti in esecuzione:
    - restituisce "una stringa vuota" per www.mio_dominio.it/index.jsp
    - e "/cartella_app" per www.mio_dominio.it/cartella_app/index.jsp

    la conseguenza ovviamente è che le modifiche fatte in Runtime sotto un contesto (es.inserimento eventi da parte dell'utente) non si rispecchiano nell'altro contesto (a meno di riavviare Tomcat) ...in poche parole in www.mio_dominio.it/index.jsp vedo le informazioni vecchie, mentre in www.mio_dominio.it/cartella_app/index.jsp vedo le modifiche fatte dall'utente.


    Visto che sono abbastanza nuovo dell'argomento non capisco dove sbaglio, dovrei cambiare il path del contesto (per l'host mio_dominio.it) in "/cartella_app"?
    Oppure dovrei cambiare l' appBase in "webapps/cartella_app"?


    Oppure ancora forse sbaglio a caricare il WAR della webapp tramite il Tomcat Manager App che raggiungo dall'indirizzo cloud_server_IP:8080?
    Dovrei forse abilitare un Tomcat Manager specifico per mio_dominio.it:8080?

    Grazie a tutti per l'attenzione!
     
  2. Django89

    Django89 Nuovo Utente

    Registrato:
    14 Dicembre 2018
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Provo a riformulare in altra maniera che magari è più facile da capire cosa voglio ottenere.

    Allora, ho una webapp deployata in tomcat/webapps/appname.
    Dopodichè a questo punto voglio poterla raggiungere tramite il nome dominio es http://www.mio_dominio.it (quindi non con http://www.mio_dominio.it/appname).
    Ed allo stesso modo voglio definire più domini per la stessa istanza della webapp però, ovvero fare in modo che da qualsiasi nome dominio si arrivi alla app, si vedranno sempre gli stessi dati di Runtime.

    Per fare ciò quindi qual'è la configurazione corretta da fare sul file conf/server.xml?
    Una di queste?

    Codice:
    <Host name="my_domain.eu" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <Alias>www.my_domain.eu</Alias>
                <Alias>www.my_domain.it</Alias>
                <Alias>www.my_domain_2.it</Alias>
                <Context path="" docBase="appname" debug="0" privileged="true" />
                ...
        </Host>
    Codice:
    <Host name="my_domain.eu" appBase="webapps/appname" unpackWARs="true" autoDeploy="true">
                    <Alias>www.my_domain.eu</Alias>
                    <Alias>www.my_domain.it</Alias>
                    <Alias>www.my_domain_2.it</Alias>
                    <Context path="" docBase="appname" debug="0" privileged="true" />
                    ...
            </Host>
    Codice:
    <Host name="my_domain.eu" appBase="webapps/appname" unpackWARs="true" autoDeploy="true">
                    <Alias>www.my_domain.eu</Alias>
                    <Alias>www.my_domain.it</Alias>
                    <Alias>www.my_domain_2.it</Alias>
                    <Context path="/appname" docBase="appname" debug="0" privileged="true" />
                    ...
            </Host>
    Codice:
    <Host name="my_domain.eu" appBase="webapps/appname" unpackWARs="true" autoDeploy="true">
                        <Alias>www.my_domain.eu</Alias>
                        <Alias>www.my_domain.it</Alias>
                        <Alias>www.my_domain_2.it</Alias>
     <!-- without context definition -->
                        ...
                </Host>
    Oppure bisogna fare in maniera diversa?
    Grazie mille!
     
Sto caricando...

Condividi questa Pagina