Ficheros de configuración

From Red5Tutorials

Jump to: navigation, search

Ficheros de configuración usados en Red5

Este documento describe los ficheros de configuración usados por Red5 (Red5 0.6 Dev), es posible (casi seguro) que algunos ficheros de configuración sufran algunos cambios o sean distintos en siguientes versiones.

Directorio Conf


Contents

jetty.xml

Define la configuración del seridor HTTP y el contenedor de servlets. Funciona en todos los interfaces disponibles y por defecto en el puerto 5080

(Syntaxis y más info en Jetty homepage)

Keystore

Contiene una clave privada y certificado para ser usado en conexiones seguras.


log4j.properties

Controla el nivel de log y los manejadores de salida (output handlers) para el subsistema de logging.

(+ Info en http://logging.apache.org/log4j/docs/ ) realm.properties (Jetty)

Este fichero define las contraseñas de los usuarios y los distintos roles que pueden usarse para zonas protegidas.

El formato es:

<username>: <password>[,<rolename> ...]

Las contraseñas pueden ser de tipo texto, ofuscated o checksummed. Para generar contraseñas de tipo obfuscated o checksummed deberemos usar la "org.mortbay.util.Password".


tomcat-users.xml

(Tomcat)

Este fichero define las contraseñas de los usuarios y los distintos roles que pueden usarse para zonas protegidas.

El formato es:

<user name="<username>" password="<password>" roles="[,<rolename> ...]" />

Las contraseñas pueden ser de tipo texto, ofuscated o checksummed.

+ Info How-to http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html + Info TomCat realm http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/realm/package-summary.html


red5.globals

Especifica el path o ruta por defecto de la propiedad global context, que usará Red5.

Por defecto este fichero se encuentra en "/webapps/red5-default.xml". red5.properties

Este fichero contiene pares de datos key-value que configuran el host y puertos de los servicios básicos como RTMP o Remoting. red5.xml

Este es el principal fichero de configuración. red5.xml conecta la red de contextos de todas las aplicaciones y servidores. Se encarga de cargar "red5-common.xml" y "red5-core.xml" y configura el resto del servidor. Este es el primer fichero que se carga en Red5. El contenedor de servlets (Jetty o TomCat) es seleccionado en este fichero de configuración de la siguiente manera:

Jetty:

     <bean id="jetty6.server" class="org.red5.server.JettyLoader" init-method="init" autowire="byType" />

Tomcat:

     <bean id="tomcat.server" class="org.red5.server.TomcatLoader" init-method="init" destroy-method="shutdown" autowire="byType">
         ... cut for brevity ...
     </bean>



red5-common.xml

Aquí se declaran las clases que se comparten entre todos los contextos hijos. Contiene información sobre serialización de objetos, codecs de la red de protocolos y los codecs de vídeo disponibles.

El objeto (FLV) cache es configurado y conectado a spring a través de este fichero. Ahora mismo hay cuatro implementaciones disponibles y es necesario elegir sólo una de ellas. La primera implementación (simple byte-buffers) ha sido realizada por el equipo de Red5 y el resto usan WhirlyCache o Ehcache. Si no se desea hacer uso de la cache deberá ser especificado en el fichero como:

NoCache:

     <bean id="object.cache" class="org.red5.server.cache.NoCacheImpl"/>

El resto de configuraciones quedarían como:

Red5 homegrown simple example:

     <bean id="object.cache" class="org.red5.server.cache.CacheImpl" init-method="init" autowire="byType"> 
              <property name="maxEntries"><value>5</value></property>
          </bean>

EhCache http://ehcache.sourceforge.net/ :

     <bean id="object.cache" class="org.red5.server.cache.EhCacheImpl" init-method="init">
     		<property name="diskStore" value="java.io.tmpdir" />
     		<property name="memoryStoreEvictionPolicy" value="LFU" />
     		<property name="cacheManagerEventListener"><null/></property>		
     		<property name="cacheConfigs">
     			<list>
     				<bean class="net.sf.ehcache.config.CacheConfiguration">
     					<property name="name" value="flv.cache" />
     					<property name="maxElementsInMemory" value="5" />
     					<property name="eternal" value="false" />
     					<property name="timeToIdleSeconds" value="0" />
     					<property name="timeToLiveSeconds" value="0" />
     					<property name="overflowToDisk" value="false" />
     					<property name="diskPersistent" value="false" />
     				</bean>			
     			</list>
     		</property>
     	</bean>

Whirlycache https://whirlycache.dev.java.net/ :

     <bean id="object.cache" class="org.red5.server.cache.WhirlyCacheImpl" init-method="init" autowire="byType">
             <property name="maxEntries" value="5" />
     	<property name="cacheConfig">
     	     <bean class="com.whirlycott.cache.CacheConfiguration">
     		  <property name="name" value="flv.cache" />
     		  <property name="maxSize" value="5" />
     		  
     		  <property name="policy"><value>com.whirlycott.cache.policy.LFUMaintenancePolicy</value></property>
     		  
     		  
     		  
     		  
     		  
     		  		
     		  
     	          <property name="backend"><value>com.whirlycott.cache.impl.FastHashMapImpl</value></property>
     	      </bean>
     	  </property>
           </bean>


red5-core.xml

Todos los servicios disponibles deben especificarse en este fichero. Por defecto se activan los servicios RTMP y RTMPT. La configuración actual para RTMPT se puede encontrar en "red5-rtmpt.xml" cuando se usa JEtty como contenedor de servlets. El manejador de RTMP es seleccionado dependiendo de las definiciones de las etiquetas bean.

Configuración para Jetty:

     <bean id="rtmpt.server" class="org.red5.server.net.rtmpt.RTMPTLoader" init-method="init" autowire="byType" />

Configuración para Tomcat:

     <bean id="rtmpt.server" class="org.red5.server.net.rtmpt.TomcatRTMPTLoader" init-method="init" autowire="byType">
              ... cut for brevity ...
          </bean>


red5-rtmpt.xml

Realiza el mapeo entre las URLs de RTMPT URLs y los servlets a usar, también especifica el host y el puerto. El servidor RTMPT corre por defecto para todos los interfaces en el puerto 8088.

(+ Info http://jetty.mortbay.org/jetty6/)

web.xml

(Tomcat)

Aquí se define la configuración por defecto que usa Tomcat. La configuración que aquí se defina prevalecerá sobre WEB_INF/web.xml file.

(+ Info http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Configuration)


web-default.xml

(Jetty)

Aquí se defice la configuración por defecto que usa Jetty. La configuración que aquía de difina prevalecerá sobre WEB_INF/web.xml file. Directorio WEB-INF dentro de cada Aplicación


red5-web.xml

Las aplicaciones Red5 son configuradas a través de este fichero. La implementación de scripts o la palicación Java debe ser definida aquí via Spring bean.

Ejemplos

Java:

     <bean id="web.handler" class="org.red5.server.webapp.oflaDemo.Application" singleton="true" />

Javascript / Rhino:

     <bean id="web.handler" class="org.red5.server.script.rhino.RhinoScriptFactory">
     	<constructor-arg index="0" value="classpath:applications/main.js"/>
     	
     	<constructor-arg index="1">
     	    <list>
     		<value>org.red5.server.api.IScopeHandler</value>
     		<value>org.red5.server.adapter.IApplication</value>
     	    </list>
     	</constructor-arg>
     	
     	<constructor-arg index="2">
     	    <value>org.red5.server.adapter.ApplicationAdapter</value>
     	</constructor-arg>
         </bean>

Ruby:

     <bean id="web.handler" class="org.red5.server.script.jruby.JRubyScriptFactory">
             <constructor-arg index="0" value="classpath:applications/main.rb"/>
     	<constructor-arg index="1">
     	    <list>
     		<value>org.red5.server.api.IScopeHandler</value>
     		<value>org.red5.server.adapter.IApplication</value>
     	    </list>
     	</constructor-arg>
         </bean>
Personal tools