Este documento presenta una introducción a JBoss, un servidor de aplicaciones Java. Explica cómo instalar y configurar JBoss, desplegar aplicaciones, gestionar el servidor, ajustar el rendimiento, configurar clustering, y asegurar JBoss. También cubre herramientas de administración y resolución de problemas.
18. Requisitos Requisitos Hardware • 512 MB RAM • 100 MB hard disk space • 400 MHz CPU JDKs soportadas • Sun JDK 1.6 • OpenJDK 1.6 • IBM JDK 1.6 Sistema Operativo Cualquiera capaz de ejecutar una JDK: Linux y UNIX así cómo Windows.
43. Comparativa servidores de aplicaciones ¿Es Tomcat un servidor de aplicaciones? Podemos ver una comparativa de Servidores de Aplicaciones en: http://en.wikipedia.org/wiki/Comparison_of_application_servers
46. Instalando la máquina virtual Java En primer lugar debemos de instalar la máquina virtual JAVA: Desde la web del proveedor. Usando paquetes de nuestra distribución.
58. Gestión de clases en Jboss ¿Por qué tenemos que tener cuidado con la gestión de clases en Jboss? ¿Cómo se comporta por defecto el cargador de clases? ¿Podemos modificar ese comportamiento?
74. jconsole Para usarlo activamos la depuración remota en /jboss/bin/run.conf JAVA_OPTS=” $JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
75. Línea de comandos También disponemos de herramientas útiles en línea de comandos: - jps - jmap - twiddle jboss/bin/twiddle.sh -s 127.0.0.1:1099 invoke jboss.system:type=ServerInfo listThreadCpuUtilization
78. Configurando la memoria Límite de memoria con 32 bits: ~ 2Gb Configuración en jboss/bin/run.conf -Xms1000m -Xmx3000m -XX:PermSize=256m -XX:MaxPermSize=384m
79. Recolección de basura Tipos de recolecciones: GC Full-GC Política por defecto: STOP THE WORLD!!!!
80. Recolección de basura Depurando el recolector de basura: -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails Configuraciones alternativas del Garbace Colector: Recolector paralelo: +UseParallelGC
81. Conector nativo Podemos mejorar el rendimiento como servidor web usando el conector nativo: http://labs.jboss.com/jbossweb/downloads/jboss-native.html Evita cuelgues en la versión open source entre Apache y Jboss.
95. Jboss Cluster Nos permite compartir sesiones entre distinos nodos de Jboss. Utiliza comunicación multicast basada en JGroups. Para activarlo debemos arrancar así: ./run.sh -c all -b 192.168.1.1 -g MiCluster -Djgroups.bind_addr=192.168.1.1
96. Configuración de las aplicaciones Requisito: No tener objetos no serializables en sesión Activación: En el web.xml de la aplicación añadimos la siguiente opción: <distributable/>
97. Sticky Sessions En caso de no poder realizar la compartición de sesiones aún podremos recurrir a las sesiones pegajosas. En Apache en /etc/libapache2-mod-jk/workers.properties ... worker.loadbalancer.sticky_session=1 ...
100. Correr jboss cómo usuario no privilegiado Podemos correr jboss con cualquier usuario del sistema. Por tanto no lo lanzaremos cómo root .
101. SSL – Crear almacén de certificados Creamos un certificado y lo metemos en su almacen: keytool -genkey -alias tomcat -keyalg RSA Lo copiamos dentro de la instalación de jboss: cp .keystore jboss/server/default/conf/mykeystore
102. SSL - Configuración jboss/server/default/deploy/jboss-web.deployer/server.xml <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" address="${jboss.bind.address}" redirectPort="8443" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${jboss.server.home.dir}/conf/mykeystore" keystorePass="changeit" /> Accedemos a través de localhost:8443
103. Asegurando jmx-console Descomentamos en jboss/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml <security-domain>java:/jaas/jmx-console</security-domain> Descomentamos en jboss/server/default/deploy/jmx-console.war/WEB-INF/web.xml <security-constraint> <web-resource-collection> <web-resource-name>HtmlAdaptor</web-resource-name> <description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application </description> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>JBossAdmin</role-name> </auth-constraint> </security-constraint>
104. Asegurando jmx-console Descomentamos en jboss/server/default/conf/login-config.xm <application-policy name = "jmx-console"> <authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required"> <module-option name="usersProperties">props/jmx-console-users.properties</module-option> <module-option name="rolesProperties">props/jmx-console-roles.properties</module-option> </login-module> </authentication> </application-policy> Creamos el fichero jboss/server/default/conf/props/jmx-console-users.properties admin=contrasena Y añadimos el usuario al grupo admin jboss/server/default/conf/props/jmx-console-roles.properties jmx-admin=JBossAdmin,HttpInvoker
105. Aseguramos web-console Usaremos los mismos credenciales que la jmx-console. jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml <security-constraint> <web-resource-collection> <web-resource-name>HtmlAdaptor</web-resource-name> <description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application </description> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>JBossAdmin</role-name> </auth-constraint> </security-constraint> jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml <security-domain>java:/jaas/jmx-console</security-domain>
108. Ilustraciones Titulo Autor Licencia Jboss Logo Red hat All right reserved The game [email_address] Attribution-Noncommercial-No Derivative Works 2.0 Generic Tux Tie adpowers Attribution 2.0 Generic I wanna hold your hand batega Attribution 2.0 Generic Legospective Guillermo Attribution-No Derivative Works 2.0 Generic Cats love linux photohiro Attribution 2.0 Generic Day 10/366 – my muscle building supplements size8jeans Attribution-Noncommercial 2.0 Generic DSC00179 blatch Attribution-Share Alike 2.0 Generic Handcuffed wlodi Attribution-Share Alike 2.0 Generic Masarwa ma jonrawlinson Attribution 2.0 Generic