LinuxParty
Ahora que escribir aplicaciones Java Web se ha convertido en una forma común de crear y desplegar contenido web, la gente está descubriendo el Jakarta Tomcat servlet y JSP container. Son gratis, multiplataforma, rico en características, con una rápida evolución y mejora, y nunca ha sido más popular.
El único inconveniente parece ser la siguiente: ¿cómo se puede configurar Tomcat para hacer lo que quieres que haga? Tomcat será capaz de hacerlo, siempre y cuando usted pueda configurarlo para que se adapte a sus necesidades. A continuación se muestra mi lista de diez consejos de configuración de Tomcat, tomados de ·Tomcat: The Definitive Guide·, para ayudarle a hacer precisamente eso.
1. Configuración de la aplicación Web Admin
Los Servidores J2EE comerciales proporcionan una interfaz administrativa plenamente funcional, y muchos de ellos son accesibles como aplicaciones web. La aplicación Tomcat Admin está camino de convertirse en una herramienta en toda regla Tomcat administración rivaliza con ofertas comerciales. En primer lugar está incluido a partir de Tomcat 4.1, El menú Admin ya proporciona control sobre los contextos, las fuentes de datos y los usuarios y grupos. También puede controlar recursos como parámetros de inicialización, así como usuarios, grupos y roles en una variedad de bases de datos de usuario. La lista de capacidades se ampliará en futuras versiones, pero la implementación actual ha demostrado ser muy útil.
La aplicación Web Admin se define en el archivo CATALINA_BASE/webapps/admin.xml.
Debe editar este archivo para asegurarse de que la ruta especificada en el atributo docBase
del elemento Context
es absoluto, es decir, la ruta absoluta del CATALINA_HOME/server/webapps/admin. Alternativamente, puede eliminar el archivo de despliegue automático y especificar el contexto de administración de forma manual en el archivo server.xml. En las máquinas que no van a ser administrados por esta aplicación, debería desactivarlo por completo por la simple eliminación CATALINA_BASE/webapps/admin.xml.
Si está usando un UserDatabaseRealm
(por defecto), tendrá que agregar un usuario y un rol para CATALINA_BASE/conf/tomcat-users.xml. Por ahora, sólo edite este archivo y agregar una función llamada "admin" a su base de datos los usuarios:
<role name="admin"/>
También debe tener un usuario que se asigna al rol "admin". Añada una línea como esta después de las entradas de usuario existentes (cambie la contraseña a algo un poco más seguro):
<user name="admin" password="deep_dark_secret" roles="admin"/>
Una vez que haya realizado estos pasos y reinicie Tomcat, visite la URL http://localhost:8080/admin, y debería ver una pantalla de inicio de sesión. La aplicación de administración se crea y gestiona utilizando un contenedor de seguridad y el marco Jakarta Struts. Una vez que haya iniciado la sesión como un usuario asignado al rol de administrador, usted será capaz de utilizar la aplicación de administración para configurar Tomcat.
2. Configuración de la aplicación Web Manager
La aplicación Web Manager le permite realizar simples tareas de gestión sobre sus aplicaciones web a través de una interfaz web de usuario que es el de la aplicación web de administración.
La aplicación Web Manager está definido en el archivo de despliegue automático CATALINA_BASE/webapps/manager.xml.
Debe editar este archivo para asegurarse de que la ruta especificada en el atributo docBase
del elemento Context
es absoluto, es decir, la ruta absoluta del CATALINA_HOME/server/webapps/manager.
Si utiliza el valor por defecto UserDatabaseRealm
, usted tendrá que añadir un usuario y el rol de la CATALINA_BASE/conf/tomcat-users.xml. Por ahora, sólo edite este archivo y agregar una función denominada "manager" a su base de datos de los usuarios:
<role name="manager"/>
También debe tener un usuario que tenga asignado el papel de "manager". Añada una línea como esta después de las entradas de usuario existentes (cambio de la contraseña a algo un poco más seguro):
<user name="admin" password="deep_dark_secret" roles="admin"/>
A continuación, reinicie Tomcat y visite http://localhost/manager/list para ver la interfaz del gestor de texto, o http://localhost/manager/html/list para la interfaz de administrador de simple HTML. En cualquier caso, la aplicación Manager ahora debería estar trabajando.
La aplicación Manager le permite instalar nuevas aplicaciones web de manera no persistente, para su análisis. Si tenemos una aplicación web en /home/user/hello y quiere probarlo instalándolo en la URI /hello
, ponemos "/hello" en el campo de entrada de texto primero (para Path) y "file:/home/user/hello" en el campo de entrada de texto (para URL Config).
El Manager también le permite detener, volver a cargar, eliminar o anular la implementación de una aplicación web. Detener una aplicación hace que no esté disponible hasta nuevo aviso, y por supuesto se puede reiniciar. Los usuarios que intenten acceder a una aplicación recibirá un mensaje de error, como por ejemplo 503 - Esta aplicación no está disponible actualmente.
La eliminación de una aplicación web la elimina sólo de la copia en ejecución del Tomcat - si se inició a partir de los archivos de configuración, volverá a aparecer la próxima vez que reinicie Tomcat (es decir, la eliminación no elimina el contenido de la aplicación web del disco).
3. Implementar una aplicación Web
Hay dos maneras de implementar una aplicación web en el sistema de archivos:
1. Copie el archivo WAR o directorio de la aplicación web (incluyendo todo su contenido) a los directorios $CATALINA_BASE/webapps
2.Cree un archivo de fragmento XML con sólo el elemento Context
para la aplicación Web, y coloque el archivo XML en $CATALINA_BASE/webapps. La aplicación web en sí puede ser almacenada en cualquier parte de su sistema de archivos.
Si usted tiene un archivo WAR, puede desplegarlo simplemente copiando el archivo WAR en el directorio CATALINA_BASE/webapps. El nombre del archivo debe terminar con la extensión ". WAR". Una vez Tomcat toma el archivo, (por defecto) lo descomprime en un subdirectorio con el nombre base del archivo WAR. A continuación, crea un contexto en la memoria, como si lo hubiera creado/editado el archivo server.xml de Tomcat. Sin embargo, cualquier valor predeterminado necesario se obtiene del elemento DefaultContext
en el archivo server.xml de Tomcat.
Otra forma de desplegar una aplicación web es escribiendo el archivo XML y desplegarlo en el directorio CATALINA_BASE/webapps. Un fragmento del contexto no es un documento XML completo, son sólo un elemento Context
y subelementos que son apropiados para su aplicación web. Estos archivos son como elementos Context
cortados fuera del archivo server.xml, de ahí el nombre de "fragmentos de contexto".
Por ejemplo, si quisiéramos desplegar el archivo WAR myWebApp.war junto con un ámbito de acceso a las partes de que la aplicación web, podemos usar este fragmento:
Ponga esto en un archivo llamado "MyWebApp.xml" y copiarlo en tu directorio CATALINA_BASE/webapps.
Estos fragmentos de contexto proporcionar un método conveniente para el despliegue de aplicaciones web, usted no necesita editar el archivo server.xml y, a menos que haya desactivado la opción predeterminada liveDeploy
, no es necesario reiniciar Tomcat para instalar una nueva aplicación web.
<!--
Context fragment for deploying MyWebApp.war
-->
<Context path="/demo" docBase="webapps/MyWebApp.war"
debug="0" privileged="true">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Context>
4. Configuración de hosts virtuales
El elemento Host
normalmente necesita modificación sólo cuando se está configurando hosts virtuales. El Virtual hosting es un mecanismo por el cual un proceso de servidor web puede servir a varios nombres de dominio, dando a cada dominio la apariencia de tener su propio servidor. De hecho, la mayoría de los pequeños sitios web de negocios se implementan como máquinas virtuales, debido al costo de la conexión de un ordenador directamente a Internet con ancho de banda suficiente para proporcionar tiempos de respuesta razonables y la estabilidad de una dirección IP permanente.
El nombre del hosting virtual se basa en crear en cualquier servidor web mediante el establecimiento de una dirección "alias IP" en el servicio de nombres de dominio (DNS) y diciendo al servidor web que mapee todas las solicitudes destinadas a la dirección de alias para un directorio determinado de páginas web. Dado que este artículo trata sobre Tomcat, no tratamos de mostrar todas las formas de configurar los datos del DNS en varios sistemas operativos. Si usted necesita ayuda con esto, por favor consulte DNS y Bind , de Paul Albitz y Cricket Liu (O'Reilly). Para fines de demostración, voy a utilizar un archivo host estático, ya que es la forma más fácil de configurar un alias para realizar pruebas.
Para utilizar hosts virtuales en Tomcat, sólo tiene que configurar las DNS o datos hosts del host. Para la prueba, haciendo un alias IP de localhost es suficiente. A continuación, deberá añadir unas líneas al archivo de configuración server.xml:
<Server port="8005" shutdown="SHUTDOWN" debug="0"> <Service name="Tomcat-Standalone"> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"/> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8443" minProcessors="5" maxProcessors="75" acceptCount="10" debug="0" scheme="https" secure="true"/> <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory" clientAuth="false" protocol="TLS" /> </Connector> <Engine name="Standalone" defaultHost="localhost" debug="0"> <!-- This Host is the default Host --> <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="ROOT" debug="0"/> <Context path="/orders" docBase="/home/ian/orders" debug="0" reloadable="true" crossContext="true"> </Context> </Host> <!-- This Host is the first "Virtual Host": www.example.com --> <Host name="www.example.com" appBase="/home/example/webapp"> <Context path="" docBase="."/> </Host> </Engine> </Service> </Server>
El archivo server.xml de Tomcat, distribuido, contiene sólo un host virtual, pero es fácil añadir soporte para otras máquinas virtuales. La versión simplificada del fichero server.xml en el ejemplo anterior se muestra en:
<!-- This Host is the first "Virtual Host": www.example.com --> <Host name="www.example.com" appBase="/home/example/webapp"> <Context path="" docBase="."/> </Host>
Está la estructura global adicional necesaria para añadir un host virtual. Cada elemento Host
debe tener uno o más elementos Context
dentro de ella, uno de ellos debe ser el Context
predeterminado para este host, que se especifica por tener su conjunto de ruta relativa a la cadena vacía (por ejemplo, path=""
).
5. Configuración de la autenticación básica
Gestionado por contenedor de métodos de autenticación, controla las credenciales de un usuario y verifican cuando los recursos protegidos de una aplicación web se accede. Cuando una aplicación web utiliza autenticación básica ( BASIC
en el archivo web.xml del elemento auth-method
), Tomcat utiliza la autenticación básica HTTP para hacer el navegador web de un nombre de usuario y contraseña cada vez que el navegador solicita un recurso de esa aplicación web protegida. Con este método de autenticación, todas las contraseñas se envían por la red en texto codificado en base 64.
Nota: el uso de la autenticación básica es generalmente considerado insegura, porque no es fuertemente cifrada la contraseña, a menos que el sitio también utilice HTTPS o alguna otra forma de cifrado entre el cliente y el servidor (por ejemplo, una red privada virtual). Sin esta codificación extra, los monitores de red pueden interceptar contraseñas (y abuso) de los usuarios. Pero, si usted está empezando a utilizar Tomcat, o si simplemente desea probar gestionada por contenedor de seguridad con su aplicación web, la autenticación básica es fácil de configurar y probar. Sólo tiene que añadir <security-constraint>
y <login-config>
en el archivo web.xml de tu aplicación web, y añadir la correspondiente <role>
y <user>
a su CATALINA_BASE / conf / tomcat-users.xml, reinicie Tomcat y Tomcat se encarga del resto.
El siguiente ejemplo muestra un fragmento web.xml de un sitio web del club de membresía con un subdirectorio sólo para miembros que se protege mediante la autenticación básica. Tenga en cuenta que esto efectivamente toma el lugar de. Archivos del servidor Web Apache htaccess.
<!-- Define the Members-only area, by defining a "Security Constraint" on this Application, and mapping it to the subdirectory (URL) that we want to restrict. --> <security-constraint> <web-resource-collection> <web-resource-name> Entire Application </web-resource-name> <url-pattern>/members/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>member</role-name> </auth-constraint> </security-constraint> <!-- Define the Login Configuration for this Application --> <login-config> <auth-method>BASIC</auth-method> <realm-name>My Club Members-only Area</realm-name> </login-config>
Sigue aquí:
Top 10 de la configuración en Tomcat, 2 de 2
-
Apache
- Cómo cambiar el nombre del servidor Apache por cualquier cosa personalizando el servidor
- Cómo instalar Varnish y realizar una evaluación comparativa del servidor web
- 13 consejos para reforzar la seguridad del servidor web Apache en Servidores Linux
- Cómo administrar el servidor Apache usando la herramienta "Apache GUI"
- Crear un sitio web protegido, con usuario y contraseña
- Cómo instalar Joomla en Rocky Linux y AlmaLinux
- Incrementar el rendimiento de su Web usando Nginx como Proxy con Apache
- ¿Cómo usar IPv6 en Apache?
- Cómo configurar HTTPS en Apache Web Server con CentOS
- Usar el comando occ, cómo funciona.
- Redirigir todo tu viejo dominio al nuevo dominio a través de .htaccess
- Ejemplos y Trucos de uso y configuración del htaccess de Apache
- Seguridad de Joomla: Cómo asegurar su sitio web de Joomla durante la instalación
- Securizar tu servidor Web Apache con mod_security
- Asegurar tu servidor Web Apache con ModSecurity