|
最近看到tomcat 的优化,发现使用如果使用apr可以提供tomcat的静态资源访问能力,于是就试了试。tomcat很好实现,网上很多资料。但是red5由于是嵌入的tomcat,没有server.xml, 所有一时没有找到如何解决。查看tomcat源码,发现tomcat检测apr是否可用使用在server.xml的
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
再看看red5里面的tomcat配置文件jee-container.xml,没有发现可以配置的地方。于是作出如下修改。
<bean id="AprLifecycleListener" class="org.apache.catalina.core.AprLifecycleListener" init-method="init" lazy-init="false"></bean>
<!--spring容器启动,检测apr环境,类似上面的listener-->
<bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" init-method="init" destroy-method="shutdown" depends-on="context.loader">
<property name="webappFolder" value="${red5.root}/webapps" />
<property name="connector">
<bean class="org.apache.catalina.connector.Connector">
<!-- Blocking I/O
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11Protocol" />-->
<!-- Non-blocking I/O -->
<!--
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol" />
-->
<!-- apr I/O -->
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11AprProtocol" />
<property name="port"><value>${http.port}</value></property>
<property name="redirectPort"><value>${https.port}</value></property>
<property name="enableLookups"><value>false</value></property>
<property name="useIPVHosts"><value>true</value></property>
<property name="URIEncoding"><value>${http.URIEncoding}</value></property>
</bean>
</property>
<property name="address">
<bean class="java.net.InetSocketAddress">
<constructor-arg index="0" type="java.lang.String" value="${http.host}" />
<constructor-arg index="1" type="int" value="${http.port}" />
</bean>
</property>
<property name="baseHost">
<bean class="org.apache.catalina.core.StandardHost">
<property name="name" value="${http.host}" />
<property name="unpackWARs" value="true" />
<property name="autoDeploy" value="true" />
<property name="xmlValidation" value="false" />
<property name="xmlNamespaceAware" value="false" />
</bean>
</property>
<property name="valves">
<list>
<bean id="valve.access" class="org.apache.catalina.valves.AccessLogValve">
<property name="directory" value="log" />
<property name="prefix" value="${http.host}_access." />
<property name="suffix" value=".log" />
<property name="pattern" value="common" />
<property name="resolveHosts" value="false" />
<property name="rotatable" value="true" />
</bean>
</list>
</property>
</bean>
启动信息
另外我想再启用gzip,但是没有找到配置的地方,哪位高人能指点下
2012年7月19日补充 开启gzip已经实现
直接上配置文件,浅红色为配置信息
<bean id="AprLifecycleListener" class="org.apache.catalina.core.AprLifecycleListener" init-method="init" lazy-init="false"></bean>
<bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" init-method="init" destroy-method="shutdown" depends-on="context.loader">
<property name="webappFolder" value="${red5.root}/webapps" />
<property name="connector">
<bean class="org.apache.catalina.connector.Connector">
<!-- Blocking I/O
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11Protocol" />-->
<!-- Non-blocking I/O -->
<!--
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol" />
-->
<!-- apr I/O -->
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11AprProtocol" />
<property name="port"><value>${http.port}</value></property>
<property name="redirectPort"><value>${https.port}</value></property>
<property name="enableLookups"><value>false</value></property>
<property name="useIPVHosts"><value>true</value></property>
<property name="URIEncoding"><value>${http.URIEncoding}</value></property>
</bean>
</property>
<property name="connectionProperties">
<map>
<entry><key><value>maxThreads</value></key><value>150</value></entry>
<entry><key><value>minSpareThreads</value></key><value>25</value></entry>
<entry><key><value>maxSpareThreads</value></key><value>75</value></entry>
<entry><key><value>acceptCount</value></key><value>100</value></entry>
<entry><key><value>disableUploadTimeout</value></key><value>true</value></entry>
<entry><key><value>compression</value></key><value>on</value></entry>
<entry><key><value>compressionMinSize</value></key><value>2048</value></entry>
<entry><key><value>noCompressionUserAgents</value></key><value>gozilla, traviata</value></entry>
<entry><key><value>compressableMimeType</value></key><value>text/html,text/xml,text/javascript,text/css,text/plain</value></entry>
</map>
</property>
<property name="address">
<bean class="java.net.InetSocketAddress">
<constructor-arg index="0" type="java.lang.String" value="${http.host}" />
<constructor-arg index="1" type="int" value="${http.port}" />
</bean>
</property>
<property name="baseHost">
<bean class="org.apache.catalina.core.StandardHost">
<property name="name" value="${http.host}" />
<property name="unpackWARs" value="true" />
<property name="autoDeploy" value="true" />
<property name="xmlValidation" value="false" />
<property name="xmlNamespaceAware" value="false" />
</bean>
</property>
<property name="valves">
<list>
<bean id="valve.access" class="org.apache.catalina.valves.AccessLogValve">
<property name="directory" value="log" />
<property name="prefix" value="${http.host}_access." />
<property name="suffix" value=".log" />
<property name="pattern" value="common" />
<property name="resolveHosts" value="false" />
<property name="rotatable" value="true" />
</bean>
</list>
</property>
</bean>
|
|
|