« Atrás

Configuración del contenedor web, JBoss 5.1 (Parte 2)

En esta segunda parte del artículo se pasan a describir dos de los mecanismos más habituales que se deben aprender a configurar cuando se trabaja con el servidor de aplicaciones JBoss:

  1. Virtual hosts.
  2. Conectores.

Virtual hosts

Para trabajar con hosts virtuales se deben realizar las siguientes tareas:

  • Configurar un conector para que use hosts virtuales.

  • Definir el host virtual en el fichero de configuración del servidor.

  • Asociar el host virtual definido a la aplicación mediante un fichero de configuración.

Para configurar el conector se debe activar la propiedad useIPVHosts en el conector asignando el valor true. Este atributo por defecto vale false.

<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector protocol="HTTP/1.1" port="8080"   
    address="${jboss.bind.address}"
    connectionTimeout="20000" redirectPort="8443"
    useIPVHosts=“true”/>

Definir el host virtual:

  • El elemento Host es un subelemento de Engine.

  • La configuración por defecto es:

<Engine name="jboss.web" defaultHost="localhost">
 <Host name="localhost“ ...>
    ...
 </Host>
<Engine> 

 

  • El atributo defaultHost del elemento Engine define el host virtual que van a utilizar todas las aplicaciones que NO definan de forma explícita un host virtual en su propia configuración.
  • Ejemplo de host virtual: 

<Engine name="jboss.web" defaultHost="localhost">
 ...
 <Host name=“www.prueba.com” ...>
    <Alias>www.prueba.com</Alias>
 </Host>
<Engine>

 

Al asociar un host a la aplicación el fichero jboss-web.xml de la aplicación debe ser modificado haciendo que su elemento virtual-host identifique el host virtual deseado:

<jboss-web>
    <virtual-host>www.prueba.com<virtual-host>
<jboss-web>

Configurando el archivo hosts:

  • En Linux se encuentra en el directorio /etc/.

  • En Windows XP se encuentra en C:/Windows/System32/Drivers/etc/.

  • Este archivo asigna direcciones IP a los nombres de host.

  • Por ejemplo, al colocar 127.0.0.1 o localhost en nuestro navegador nos redirecciona al mismo contenido.

...
# También pueden insertarse comentarios (como éste) en # líneas individuales o a continuación del nombre de  
# equipo indicándolos con el símbolo "#"
# Por ejemplo:
#  102.54.94.97  rhino.acme.com    # servidor origen
#  38.25.63.10   x.acme.com        # host cliente x

127.0.0.1       localhost
  • Se pasa a editar este fichero añadiendo tantas entradas como se desee:

...
# También pueden insertarse comentarios (como éste) en 
# líneas individuales o a continuación del nombre de  
# equipo indicándolos con el símbolo "#"
# Por ejemplo:
#  102.54.94.97  rhino.acme.com    # servidor origen
#  38.25.63.10   x.acme.com        # host cliente x

127.0.0.1       localhost
129.0.0.1       www.prueba.com 

Context path

Por defecto, el contexto de una aplicación es el nombre del fichero .war donde se almacena. Si deseamos cambiarlo se debe editar el fichero jboss-web-xml incluyendo el elemento context-root:

<jboss-web>
    <context-root>contexto1</context-root>
</jboss-web> 

Si se desea cambiar el contexto de una aplicación empresarial, las modificaciones se realizarán sobre el fichero application.xml:

<application>
    <module>
      <web>
        <web-uri>Proyecto.war</web-uri>
        <context-root>Context01</context-root>
      </web>
    </module>
</application>

Cuando se arranca el servidor y se escribe en el navegador http://localhost:8080 aparece una página por defecto. Esa aplicación se encuentra en la carpeta ROOT.war.
Para modificar el contexto raíz del servidor se puede sustituir esta aplicación por otra u obligar a que una de nuestras aplicaciones tenga un contexto /.

Conectores

Al realizar un cambio de puertos debemos modificar el atributo port del conector. Si no se quiere que el usuario tenga que escribir el puerto hay que asignarle el valor 80:

<Connector protocol="HTTP/1.1" port="80"   
    address="${jboss.bind.address}"
    connectionTimeout="20000" redirectPort="8443"
    />

Para el Control de la concurrencia los conectores se han diseñado para gestionar conexiones concurrentes desde diferentes navegadores. Existen dos atributos importantes:

  1. maxThreads: número máximo de hilos que se ejecutan concurrentemente.

  2. acceptAccount o backlog: define la longitud de la cola. Cuando todos los hilos están ocupados, el conector comienza a encolar peticiones. Si la cola se llena el conector comienza a rechazar peticiones. Su valor por defecto es 10.

En la configuración de timeouts a veces, un usuario quiere acceder a un recurso y o el recurso NO está disponible o responde lentamente. En determinadas situaciones NO interesará que ese cliente bloquee el thread de forma indefinida. El conector tiene un atributo llamado connectionTimeout que especifica en milisegundos el tiempo de espera después de que la conexión se haya hecho.
Para el conector HTTP su valor por defecto es 60 y para AJP es 0, es decir, infinito.

Comentarios
URL de Trackback:

comments powered by Disqus