上期我们讲到LoaRunner性能测试链接器配置,这期我们讲LoaRunner性能测试APR配置。
APR配置
omcat可以使用APR(ApahcePortableRuntime)来提供更卓越的可伸缩性和性能,并且更好地集成本地服务器技术,APR是一个高可移植库,它以ApacheHTTPServer2.x为核心。APR有很多用途,包括访问高级IO功能(如sendfile、epoll和OpenSSL)OS级别功能(随机数生成、系统状态等等)本地进程管理(共享内存、NT管道和UNIXsockets)
这些功能可以使Tomcat作为一个通常的前台WEB服务器,更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。
APR安装需要三个主要组件:
-
APR库;
-
基于APR的JNI(NativeInterface)安装包;
-
OpenSSL库;
在Windows下安装: 在Windows二进制包中提供了tcnative包它是一个静态包,包括OpenSSL和APR两个组件,针对自身的平台可以下载适合自己的平台,从安全性角度考虑,建议使用单独的OpenSSL和APR包。
在Linux下安装: 在很多Linux发行版中其实已经封装了APR和OpenSSL安装包,JNI安装包则依懒于APR、OpenSSL和JDK。 安装包的二进制源文件,打包在tomcat-native.tar.gz包中对该文件进行解压和提取,提取后对文件进行配置编辑和安装即可。即./configure、make和makeinstall。 安装好之后,在server.xml文件中可以看到关于APR配置内容,如下是一个实例: <?xmlversion='1.0'encoding='utf-8'?> <Serverport="-1"shutdown="SHUTDOWN"> <ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on"/> <ListenerclassName="org.apache.catalina.core.JasperListener"/> <ListenerclassName="org.apache.catalina.mbeans.ServerLifecycleListener"/> <ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <GlobalNamingResources> <Resourcename="UserDatabase"auth="Container" type="org.apache.catalina.UserDatabase" description="Userdatabasethatcanbeupdatedandsaved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <Servicename="Catalina"> <Executorname="tomcatThreadPool"namePrefix="tomcat-http--"maxThreads="300"minSpareThreads="50"/> <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8443" acceptCount="100" maxKeepAliveRequests="15"/> <Connector executor="tomcatThreadPool" port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8443" acceptCount="100" maxKeepAliveRequests="15" SSLCertificateFile="${catalina.base}/conf/tcserver.crt" SSLCertificateKeyFile="${catalina.base}/conf/tcserver.key" SSLPassword="changeme" SSLEnabled="true" scheme="https" secure="true"/> <Enginename="Catalina"defaultHost="localhost"> <RealmclassName="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Hostname="localhost"appBase="webapps" unpackWARs="true"autoDeploy="true"deployOnStartup="true"deployXML="true" xmlValidation="false"xmlNamespaceAware="false"> </Host> </Engine> </Service> </Server> APR生命周期的监控配置如下: <ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on"/> className表示监控的类名,SSLEngine属性用于配置是否启动SSL引擎,如果设置为“on”则启动SSL,如果设置为“off”则表示不启动SSL引擎,缺省值为“on”,这只是初始化SSL引擎,如果需要在连接器中使用SSL引擎,那么需要配置“SSLEnabled”属性,将“SSLEnabled”属性设置为“True”表示在该连接器中启动SSL引擎,将“SSLEnabled”属性设置为“False”表示在该连接器中不启动SSL引擎。
APR中配置连接器通常有三种:
-
HTTP
-
HTTPS
-
AJP
HTTP连接器配置: 当APR启动时,HTTP连接器会发送文件来处理大型静态文件,增加服务器的可伸缩性,HTTP连接器的常用配置选项,见表。 表HTTP连接器配置项
HTTPS连接器配置:
当APR启动后,HTTPS连接器将使用socket用于轮回以增加服务器的可伸缩性,也可以使用OpenSSL,但是否比JSSE更有优势,取决于处理器,与HTTP连接器不同的是,HTTPS连接器不能发送文件对静态文件进行处理。HTTPS APR与HTTP APR有很多相同的基本属性,但OpenSSL是特定的,连接器的常用配置选项,见表。表HTTPS连接器配置项
一个关于SSL连接器配置的实例:
<Connector port="443" maxHttpHeaderSize="8192" maxThreads="150" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" SSLEnabled="true" SSLCertificateFile="${catalina.base}/conf/localhost.crt" SSLCertificateKeyFile="${catalina.base}/conf/localhost.key" />
AJP连接器配置:当APR启动后,AJP连接器将使用socket用于轮回,以增加服务器的可伸缩性,与HTTP连接器不同的是,HTTPS连接器不能发送文件对静态文件进行处理。AJP连接器的常用配置选项,见表。图AJP连接器配置项