Apache Tomcat连接器-Web服务器操作方法
2021-02-18 13:20
如果您的网站管理员非常忙(每秒超过100个请求,或同时存在100个以上的客户端连接),则有时可能希望让IIS直接提供静态内容(html,gif,jpeg等),即使这些文件是Tomcat服务的上下文的一部分。允许IIS直接为此类文件提供服务可能会避免包括通过重定向器将请求传递给Tomcat的小开销,并且可以通过仅使用IIS处理仅Tomcat可以处理的请求(例如,对JSP页面和Java的请求)来释放Tomcat servlet)。
例如,考虑示例上下文中的html和gif文件:您可以直接通过IIS提供这些文件;无需通过Tomcat流程为其提供服务。
但是,在实现以下配置样式时,应该非常小心,因为这样做实际上是为IIS提供了一个“后门”,并允许它在Tomcat不了解的情况下从Tomcat上下文中提供文件,从而绕开了它。 Tomcat本身和Tomcat上下文(webapp)可能对这些文件施加的任何安全限制。使IIS服务作为Tomcat上下文一部分的静态文件需要满足以下条件:
- 配置IIS以了解Tomcat上下文
- 配置重定向器以将静态文件留给IIS
向IIS中添加Tomcat上下文需要添加一个覆盖Tomcat上下文的新IIS虚拟目录。例如,添加一个覆盖c:\ tomcat \ webapps \ examples目录的/ example IIS虚拟目录。
配置重定向器有些困难,您将需要指定要Tomcat处理的确切URL-路径模式(通常仅JSP文件和servlet)。这需要对uriworkermap.properties进行更改:
For the examples context it requires to replace the following line
/examples/*=defworker
with the following two lines
/examples/*.jsp=defworker
/examples/servlet/*=defworker
如您所见,第二种配置更为明确,它实际上指示重定向器将请求仅重定向到/ examples / servlet /下的资源以及名称以.jsp结尾的/ examples /下的资源。
您甚至可以更加明确,并提供以下行:
/example/servlets/chat=defworker
指示重定向器将其URL路径与前导字符串“ / example / servlets / chat”匹配的所有请求重定向到名为defworker的工作器。