Tomcat配置
http连接
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
maxThreads="150"
maxConnections="200"
acceptCount="100"
redirectPort="8443"/>
1.maxThreads 最大线程数
maxThreads参数定义了Tomcat可以创建的最大线程数。每个传入的请求都会被分配一个线程,因此这个参数直接影响了Tomcat可以同时处理的请求数量。
2.maxConnections 最大连接数
maxConnections参数定义了Tomcat在任何给定时间可以处理的最大连接数。当达到这个限制时,新的连接请求可能会被拒绝,直到有连接被释放。
3.acceptCount 等待队列
acceptCount参数定义了当所有可能的请求处理线程都在使用时,可以排队等待的最大连接请求数。如果队列已满,新的连接请求可能会被拒绝。
4.connectionTimeout 连接超时
网络连接超时,单位为毫秒。设置为0表示永不超时,这样设置有隐患,通常可设置为30000毫秒
问题
1.JSP页面编译时出现"Unable to compile class for JSP exceeding the 65535 bytes limit"错误
通常是由于JSP文件过大导致生成的_jspService方法超过Java方法字节码限制。以下是几种解决方案:
- 修改JSP包含方式
将静态包含指令<%@ include file=“…”%>替换为动态包含标签<jsp:include page=“…”/>。静态包含会在编译时合并文件内容,容易超出限制,而动态包含会生成独立的类文件 - 配置Tomcat参数
在Tomcat的web.xml文件中找到JspServlet配置,添加以下参数:
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
这会禁用JSP文件映射功能,避免编译时的方法大小限制
3. 减少JSP体积
将标签声明移到web.xml中配置,减少JSP文件内容
拆分大型JSP为多个子模块
移除不必要的HTML和JavaScript代码
漏洞修复
1.Tomcat 目标URL存在http host头攻击漏洞tomcat修复方法
打开tomcat/conf/server.xml文件,修改属性:name:主机域名
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false">
</Host>
# 修改 name = “localhost” 为 name = “www.xxx.com”
<Host name="www.xxx.com" appBase="webapps"
unpackWARs="true" autoDeploy="false">
</Host>
其它修复建议:
Web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。
参考:
Nginx,修改ngnix.conf文件,在server中指定一个server_name名单,并添加检测。
Apache,修改httpd.conf文件,指定ServerName,并开启UseCanonicalName选项。
Tomcat,修改server.xml文件,配置Host的name属性
在Tomcat配置多域名,目的是和apache相对应,实现多域名访问。 使用 < Alias></ Alias>,务必注意,使用的是首字母大写。
正确配置如下:
在默认的host下添加一个同级的host。
<Host name="www.xxx.com" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" reloadable="true" docBase="E:\Workspace\test1\WebRoot" />
<Alias>196.128.1.101</Alias>
</Host>
6268

被折叠的 条评论
为什么被折叠?



