摘要:定义workers JkWorkersFile 指定mod_jk的workers定义. JkWorkersFile /etc/httpd/conf/workers.properties Logging JkLogFile指定mod_jk放log文件的位置. JkLogFile /var/log/httpd/mod_jk.log JkLogLevel 可以设置以下log级别 :
定义workers
JkWorkersFile 指定mod_jk的workers定义.
JkWorkersFile /etc/httpd/conf/workers.properties
Logging
JkLogFile指定mod_jk放log文件的位置.
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel 可以设置以下log级别 :
info 包含标准的mod_jk行为 (默认).
error 包含错误信息.
debug mod_jk行为的全部信息
JkLogLevel info
JkLogStampFormat 用来配置log文件的日期/时间格式. 使用strftime()的格式化字符串,默认是[%a %b %d %H:%M:%S %Y]
JkLogStampFormat [%a %b %d %H:%M:%S %Y]
JkRequestLogFormat 设置个人用户请求的log格式.
Options Description
%b 发送的字节, 不包括 HTTP headers (CLF format)
%B 发送的字节, 不包括 HTTP headers
%H 协议
%m 请求方式(get/post)
%p 服务器响应请求的规范端口.
%q 查询字符串 (如果存在以?开头,否则是空串)
%r 请求的第一行.
%s HTTP状态码
%T 请求间隔, 处理请求耗费的时间 秒.微秒
%U 请求的url路径,不包含查询字符串.
%v 响应请求的规范服务器名字
%V 根据UseCanonicalName设置的服务器名字.
%w Tomcat worker 名字
JkRequestLogFormat %w %V %T
转发
JkOptions 允许你设置一些转发设置 允许或者不允许以下设置.
JkOptions ForwardKeySize, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as required by Servlet API 2.3. This flag shouldn’t be set when servlet engine is Tomcat 3.2.x (on by default). .
JkOptions ForwardKeySize,要求mod_jk当使用ajp13的时候.因为Servlet API 2.3的需要,一起提交SSL Key Size.这个状态在servlet引擎3.2.x里不能设置(默认是打开的).
JkOptions +ForwardKeySize
JkOptions ForwardURICompat, you told mod_jk to send the URI to Tomcat normally, which is less spec compliant but mod_rewrite compatible, use it for compatibility with Tomcat 3.2.x engines (on by default).
JkOptions ForwardURICompat,要求mod_jk正常发送uri给tomcat,不符合规范,但是mod_rewrite兼容.使用它为Tomcat 3.2.x引擎的兼容性.(默认是打开的)
JkOptions +ForwardURICompat
JkOptions ForwardURICompatUnparsed, the forwarded URI is unparsed, it’s spec compliant but broke mod_rewrite.
JkOptions ForwardURICompatUnparsed,提交的uri是未解析的,兼容规范,但是中断了mod_rewrite.
JkOptions +ForwardURICompatUnparsed
JkOptions ForwardURIEscaped, 提交的url逃逸了,tomcat自己做解码.
JkOptions +ForwardURIEscaped
JkOptions ForwardDirectories 被用来与apache的DirectoryIndex命令配合. As such mod_dir should be available to Apache, statically or dynamically (DSO)
配置了DirectoryIndex的时候,Aapache将为每个在命令中指定的本地url建立子请求,来决定是否有匹配的本地文件.
如果ForwardDirectories设置为false(默认) 并且Apache没找到任何匹配的文件,Apache将提供文件夹的内容(如果这个文件夹的Options命令指定了Indexes)或者一个403 Forbidden(如果这个文件夹的Options命令没指定Indexes)
如果ForwarDirectories设置为true并且Apache没找到任何匹配的文件,请求将提交tomcat解决,这个被用在万一apache在几种情况下在本地文件系统上不能找到index文件:tomcat和apache不在一台机器上,jsp文件已经被预编译等等.
注意,本地可见的文件将优先于只能tomcat可见的文件.(使用,如果apache能看到文件,那么就是将被来提供的那个).这个很重要,如果多于一种文件被tomcat提供,例如Velocity pages 和 JSP pages.
JkOptions +ForwardDirectories
JkEnvVar 使用允许你从apache向tomcat提交一个环境变量.
JkEnvVar SSL_CLIENT_V_START
给tomcat指派url
如果你已经像上面记录的建立了一个定义的或者本地版本的mod_jk.conf-local.你可以改变像workers或者URL前缀的设置.
JkMount使用指派指定的url给Tomcat. 通常一个JkMount命令像这样:
JkMount [URL 前缀] [Worker name]
# 发送所有以.jsp结尾的请求给worker1
JkMount /*.jsp worker1
# 发送所有以/servlet结尾的请求给worker1
JkMount /*/servlet/ worker1
# 发送所有在/otherworker下的jsp请求给worker2
JkMount /otherworker/*.jsp worker2
可以在你的httpd.conf文件顶级或者段中使用JkMount命令.
配置apache提供静态web应用程序文件.
如果 Tomcat Host appBase (webapps) 文件夹apache可以访问,Apache可以被配置为提供web应用程序上下文文件夹的静态文件而不是转送给tomcat.
注意:如果Apache 被配置为为一个web应用程序提供静态页面.它将绕过任何你在web.xml中配置的安全约束.
Use Apache’s Alias directive to map a single web application context directory into Apache’s document space for a VirtualHost:
使用Apache的Alias使用来映射一个单web应用程序上下文文件夹到Apache的虚拟主机文档空间
# examples web应用程序的静态内容,apache来提供.
Alias /examples /vat/tomcat3/webapps/examples
# 下面一行禁止用户直接访问 WEB-INF
AllowOverride None
deny from all
# 所有的jsp请求给worker1
JkMount /*.jsp worker1
# 所有的servlets请求给worker1
JkMount /*/servlet/ worker1
Starting with mod_jk 1.2.6, and under Apache 2.0, it’s possible to exclude some URL/URI from jk processing by setting the env var no-jk, for example with the SetEnvIf Directive.
开始在apache2.0下使用mod_jk1.2.6,可以通过设置no-jk环境变量,把一些url/uri排除在jk处理以外,比如用SetEnvIf语句.
你可以使用no-jk 环境变量解决当jk和alias/userdir URL匹配时,mod_alias或mod_userdir存在的问题.
# 除了 /home所有的url转向tomcat.
ServerName testxxx.mysys
DocumentRoot /www/testxxx/htdocs
# 使用 SetEnvIf 来设置 当遇到/home/时 no-jk.
SetEnvIf Request_URI /home/* no-jk
# 现在 /home 将变成 /home/dataxxx/
Alias /home /home/dataxxx/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
JkMount /* myssys-xxx
JkAutoAlias命令映射应用程序上下文文件夹在apache的文档空间.
试着访问在一个tomcat Host appBase(webapps)中的web应用程序上下文或者Web档案 *.war WEB-INF 或 META-INF 目录 将返回一个HTTP 403, Access Forbidden 失败.
# 静态内容由apache提供服务.
JkAutoAlias /var/tomcat3/webapps
JkMount /*.jsp ajp13
JkMount /*/servlet/ ajp13