Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Tomcat] problema con Host/Alias e Contesti

    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 HTML:
    <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. #2
    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!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.