jueves septiembre 21, 2006
Apache 2.2 + Tomcat 5.5-6 (III)
La configuración de un Apache http es bastante simple utilizando las directrices oficiales para hacer una instalación manual.
En la distribución OpenSuse 10.x, si utilizamos o realizamos la instalación automática mediante un RPM, que tiene algunas ventajas sobre la instalación manual, fácilmente le perdemos la pista a los ficheros que se centrifugan por el sistema de archivos. Además dividirá el famoso httpd.conf en bastantes más ficheros y directorios de los que esta versión de Apache contiene.
Los ficheros de configuración están ubicados en '/etc/apache2/', además se utiliza el fichero '/etc/sysconfig/apache2' y los logs los dejará por defecto en '/var/log/apache2/'.
Visión generar de los ficheros de configuración que se incluyen,
en orden cronológico, y que están ubicados en '/etc/apache2/' :
httpd.conf
|
|-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under
|-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, ...)
|-- sysconfig.d/loadmodule.conf . . . . . [*] load these modules
|-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on
|-- mod_log_config.conf . . . . . . . . . define logging formats
|-- sysconfig.d/global.conf . . . . . . . [*] server-wide general settings
|-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring)
|-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info
|-- mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking
|-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings
|-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration
|-- errors.conf . . . . . . . . . . . . . customize error responses
|-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server _and all_ virtual hosts
|
|-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests
| |--mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded)
| `--conf.d/apache2-manual?conf . . . add the docs ('?' = if installed)
|
|-- sysconfig.d/include.conf . . . . . . [*] your include files
| (for each file to be included here, put its name
| into APACHE_INCLUDE_* in /etc/sysconfig/apache2)
|
`-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here
`-- *.conf . . . . . . . . . . . . . (*.conf is automatically included)
Los ficheros marcados con [*] son creados por sysconfig automáticamente cuando se reinicializa el servidor mediante '/etc/init.d/apache2':
en vez de usar esos ficheros edita el fichero '/etc/sysconfig/apache2' para cambiar la configuración
Apache tiene que tener cargados los módulos 'mod_proxy', 'mod_proxy_ajp' y 'mod_proxy_balancer'. Para mirar si están enlazados estáticamente haremos, siendo root, '/usr/sbin/apache2ctl -l' que nos mostrará todos los módulos compilados. En el probable caso de que no lo estén, miraremos si ya se cargan por defecto como módulos dinámicos, en cuyo caso, se verán en el fichero '/etc/apache2/sysconfig.d/loadmodule.conf'.
bipuntoDMZ:/etc/apache2 # fgrep -i proxy sysconfig.d/loadmodule.conf
LoadModule proxy_module /usr/lib64/apache2-prefork/mod_proxy.so
LoadModule proxy_ajp_module /usr/lib64/apache2-prefork/mod_proxy_ajp.so
LoadModule proxy_balancer_module /usr/lib64/apache2-prefork/mod_proxy_balancer.so
LoadModule proxy_connect_module /usr/lib64/apache2-prefork/mod_proxy_connect.so
LoadModule proxy_ftp_module /usr/lib64/apache2-prefork/mod_proxy_ftp.so
LoadModule proxy_http_module /usr/lib64/apache2-prefork/mod_proxy_http.so
En el caso de que no estén, añadir a la variable 'APACHE_MODULES' del fichero '/etc/sysconfig/apache2' los módulos separados por espacios 'proxy proxy_ajp proxy_balancer'. Quedará algo así:
APACHE_MODULES="authz_host actions alias asis auth autoindex cgi dir imap include log_config mime negotiation setenvif status userdir proxy proxy_ajp proxy_balancer"Para que sean efectivos, se ha de hacer un '/etc/init.d/apache2 restart' y volver a verificar que aparecen en 'loadmodule.conf'.
El penúltimo paso es crear el host virtual, es decir, el punto de entrada a la web que mostrará los contenidos. Antiguamente esto se hacía en el fichero httpd.conf, pero ahora lo conveniente es crear un fichero exclusivo para dicha configuración de la siguiente manera:
Es decir, copiaremos la plantilla para crear hosts virtuales con el nombre del dominio con extensión .conf, y aquí editaremos nuestra configuración. Básicamente consiste en especificar el ServerName y el DocumentRoot.bipuntoDMZ:/etc/apache2 # cd vhosts.d/
bipuntoDMZ:/etc/apache2/vhosts.d # cp vhost.template www-bipunto-gov.conf
bipuntoDMZ:/etc/apache2/vhosts.d # vi www-bipunto-gov.conf
Además daremos los permisos para el directorio en donde dejemos las páginas, y el resto de secciones 'mod_userdir', 'cgi-bin' las ajustamos o las borramos según nos interese, es decir, sólo es necesaria la sección:ServerAdmin webmaster@www.bipunto.gov
ServerName www.bipunto.gov
ServerAlias www bipunto.gov
DocumentRoot /srv/www/vhosts/www-bipunto-gov
ErrorLog /var/log/apache2/www.bipunto.gov-error_log
CustomLog /var/log/apache2/www.bipunto.gov-access_log combined
Reiniciamos el Apache con 'apache2ctl restart' y comprobamos que se muestra el 'index.html' que previamente hemos dejado en el directorio apuntado en 'DocumentRoot'.<Directory "/srv/www/vhosts/www-bipunto-gov">
Y ya por último, la configuración que nos permitirá hacer el balanceo de Tomcat's.
Suponiendo que nuestra aplicación para Tomcat la tenemos instalada en las dos instancias en '/srv/webapp-a1' y en '/srv/webapp-a2' y configuradas en '/usr/local/tomcat-1/conf/Catalina/localhost/bipunto.xml' y en '/usr/local/tomcat-2/conf/Catalina/localhost/bipunto.xml'con:
Volveremos a editar el fichero www-bipunto-gov.conf y le añadiremos las siguientes líneas:bipunto:/usr/local/ # cat tomcat-1/conf/Catalina/localhost/bipunto.xml
<Context docBase="/srv/webapp-a1" path="/portal" />
bipunto:/usr/local/ # cat tomcat-2/conf/Catalina/localhost/bipunto.xml
<Context docBase="/srv/webapp-a2" path="/portal" />
Como mejoras, dejamos pendiente el redirigir las peticiones de contenido estático (css, img, js, html, ....) dentro de /portal y que sirve por defecto los Tomcat's, para que lo sirva el Apache http,ProxyRequests Off
<IfModule proxy_ajp_module>
<location /portal >
ProxyPass balancer://ajp-cluster/portal stickysession=JSESSIONID nofailover=On
ProxyPassReverse ajp://bipunto1:18009/portal
ProxyPassReverse ajp://bipunto1:28009/portal
ProxyPassReverse ajp://bipunto2:18009/portal
ProxyPassReverse ajp://bipunto2:28009/portal
</location>
<Proxy balancer://ajp-cluster>
BalancerMember ajp://bipunto1:18009/ route=tomcat1a
BalancerMember ajp://bipunto1:28009/ route=tomcat2a
BalancerMember ajp://bipunto2:18009/ route=tomcat1b
BalancerMember ajp://bipunto2:28009/ route=tomcat2b
</Proxy>
</IfModule>
y el establecer la política más correcta de balanceo (por peticiones o por tráfico), y otras optimizaciones..ProxyPass /js/ !
ProxyPass /css/ !
ProxyPass /html/ !
ProxyPass /images/ !
Technorati tags: tomcat5, apache2, mod_proxy, mod_proxy_ajp, mod_proxy_balancer, ProxyPass, ProxyPassReverse
Posted by Feliciano Borrego in Java at 20060921 Comentarios[2]Search This Site
Recent Entries
- HSPA USB Modem de MoviData
- Windows 7, el último S.O.
- Navegadores web en la Antártida
- En la tónica de hace 5 años
- Script para ordenar una tabla html print friendly (2/2)
- El definitivo script para ordenar una tabla html con javascript (1/2)
- Cuando la seguridad flaquea en sutilezas
- Recuperar los passwords de Firefox 3 (habiendo tenido FF2)
- Otro tonto error de un programador
- Incongruencias espacio temporales
- Día internacional del Software Libre
- Canon y la sopa boba
- Ideas y Buenas ideas
- Relanzamiento de cocoon.apache.org
- Wii con teclado USB
- Edicion en Roller off-line con w.bloggar
- Los términos mas buscados
- ¿Cuándo terminamos el proyecto?
- Recuperación de fotos (y II)
- Recuperar fotos borradas (I)
Por cuestiones de seguridad es mejor revisarse la instalacion por defecto y retocar algunos parametros.
Enviado por batch4j en septiembre 25, 2006 a las 03:55 PM CEST #
Los temas de seguridad se escapan de este micro tutorial, qué únicamente pretende dar una introducción a como conectar un Tomcat 5.5 con Apache 2.2 usando AJP y sin pasar por el mod_ajp, aunque para darle un poco de chicha le metí el tema del balanceador, puesto que es bastante útil y trivial de hacer. La motivación fué la escasez de documentación, tanto en castellano como en inglés.
Enviado por Feli en septiembre 25, 2006 a las 08:51 PM CEST #