29.1. 管理与配置

Apusic安装目录下的config目录中,配置文件apusic.conf包含了Web服务器的配置段。缺省的配置段如下:

...
<SERVICE
    CLASS="com.apusic.servlet.http.WebService"
    >
    <ATTRIBUTE NAME="MaxWaitingClients" VALUE="500"/>
    <ATTRIBUTE NAME="WaitingClientTimeout" VALUE="5"/>
    <ATTRIBUTE NAME="KeepAlive" VALUE="true"/>
    <ATTRIBUTE NAME="KeepAliveTimeout" VALUE="15"/>
    <ATTRIBUTE NAME="MaxKeepAliveRequests" VALUE="100"/>
    <ATTRIBUTE NAME="MaxKeepAliveConnections" VALUE="300"/>
    <ATTRIBUTE NAME="ServletReloadCheckInterval" VALUE="3"/>
    <ATTRIBUTE NAME="EnableLog" VALUE="False"/>
    <ATTRIBUTE NAME="LogFileName" VALUE="logs/access.log"/>
    <ATTRIBUTE NAME="LogFileLimit" VALUE="1000000"/>
    <ATTRIBUTE NAME="LogFileCount" VALUE="10"/>
    <ATTRIBUTE NAME="SendFile" VALUE="False"/>
    <ATTRIBUTE NAME="KeepAliveNioRequestQueueFactor" VALUE="8"/>
</SERVICE>
...

可通过修改配置段中的可配置属性,对Web服务器进行管理。

Web服务器的属性见下表:

属性描述值类型缺省值
MaxWaitingClients如果当前并发用户数已达到最大值,则客户请求被保持到一个队列中,此参数决定此队列可保持的最大等待客户请求数整型500
WaitingClientTimeout表示当队列已满时经过多长时间将请求抛弃整型,单位为秒5
KeepAlive此属性决定是否保持与当前客户端的连接“true”或“false”“true”
KeepAliveTimeout与当前客户端连接的超时数整型,单位是秒15
MaxKeepAliveRequests客户端请求被保持到一个请求队列,此属性用于决定请求队列可保持的最大客户端请求数整型100
MaxKeepAliveConnections表示系统同时保存的最大连接个数,超过这一个数时最近最少被使用的连接将被关闭整型300
ServletReloadCheckInterval检查Servlet 是否被修改的时间间隔。如果Servlet的类被修改过,Apusic会重新装载此类。在开发环境下,建议将此值设置成3。此参数的值对性能影响较大,因此在生产环境下,建议将此值设置成-1(即不检查)或一个相对比较大的值。整型,单位是秒3
EnableLog是否启用访问日志“true”或“false”“false”
LogFileName相对于Apusic应用服务器安装目录的路径及日志记录文件名字符串logs/access.log
LogFileLimit指定对每个日志文件可输出的最大近似大小(单位为字节)。如值为零,则文件可接受的输入没有限制整型0
LogFileCount指定日志文件循环集合的大小0~1010
LogHandler日志输出对象。目前支持“java.util.logging.FileHander”和“com.apusic.logging.DateFileHandler”。使用前者时,根据“LogFileLimit”的决定一个文件的大小;当使用后者时,每天的访问日志输出到一个单独的日志文件。字符串“java.util.logging.FileHander”
LogFormat日志输出格式。用于将日志记录转化为字符串形式的日志信息。字符串“%a %l %u %t %r %s %b”
FileCacheSize文件缓存空间大小。当请求的静态文件未发生过变化时,返回缓存的文件,默认的缓存空间为1024KB。整型,单位是KB1024
EnableGZip是否开启GZip。默认值为"false", 合法取值有三种:"true", "false", 或 "2048"。最后一种形式是一个数值,表示一个最小长度的字节数,只有当输出内容大于该长度时,才执行压缩。 如果配置为"true",则最小长度默认值为2048个字节。false
CompressableMimeTypes开启GZip可压缩MIME类型。可选配置,只有在开启GZip时才打开此配置,默认值为"text/html,text/xml,text/plain,text/css",其取值为逗号分隔的字符串,表示这些类型的内容才会被压缩。text/html,text/xml,text/plain,text/css
SendFile表示对静态文件启用sendFile支持,默认为False“True”或“False”False
KeepAliveNioRequestQueueFactor值大于0时,HTTPHandler线程处理KeepAliveNioRequestQueueFactor次任务后,重新从任务队列中获取任务进行处理,当前已读取的下一任务请求重新放入任务队列,可以避免在开启KeepAlive时,一个HTTP连接不断有请求的情况下独占HTTPHandler线程的问题 。值为0时,HTTPHandler线程一直从HTTP连接上获取请求,到处理完MaxKeepAliveRequests个请求,或经过KeepAliveTimeout超时时间,关闭HTTP连接,这期间都不会到任务队列取任务。取值为2的任意次幂或0,要求不大于MaxKeepAliveRequests8

下面是LogFormat目前支持的格式说明:

%a - 远端IP地址

%H - 请求协议

%m - 请求的方法(GET,POST,等)

%q - 查询字符串(如果存在,以 '?'开始)

%s - 响应的状态码

%t - 日志和时间,使用通常的Log格式

%l - 从identd返回的远端逻辑用户名(总是返回 '-')

%u - 认证以后的远端用户(如果存在的话,否则为'-')

%U - 请求的URI路径

%b - 发送的字节数,不包括HTTP头,如果为0,使用"-"

%B - 发送的字节数,不包括HTTP头

%A - 本地IP地址

%p - 收到请求的本地端口号

%r - 请求的第一行,包含了请求的方法和URI

%S - 用户的session ID

%v - 本地服务器的名称

%D - 处理请求的时间,以毫秒为单位

%T - 处理请求的时间,以秒为单位

%R - 引用地址

%g - User-agent

默认格式为:

%a %l %u %t %r %s %b

全格式为:

%a %l %u %t %r(%m %U %q %H) %s %b %B %A %p %S %v %R %g %D %T

括号内的意思是,如果有%r,则%m %U %q %H不生效。