1.升级最新版
tocmat升级遇到的问题:启动时启动窗口出现乱码
解决方案:
我们来到tomcat目录的conf子目录中,找到一个名为 "logging.properties" 的文件,打开这个文本文件,找到如下配置项:
java.util.logging.ConsoleHandler.encoding = UTF-8
将 UTF-8 修改为 GBK,修改后的效果为:
java.util.logging.ConsoleHandler.encoding = GBK
保存后,重启tomcat!
参考文档:https://blog.csdn.net/yxzone/article/details/124750692
2.删除ROOT文件夹
3.tomcat加固调优
这个主要是针对http端口处的配置
<Connector port="8080" protocol="HTTP/1.1" relaxedPathChars="\|{}[],%^`~"<>" relaxedQueryChars="\|{}[],%^`~"<>"
connectionTimeout="8000" redirectPort="8443" maxParameterCount="1000" URIEncoding="UTF-8" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" connectionUploadTimeout="60000" acceptCount="300" maxThreads="300" maxProcessors="1000" minProcessors="5" />

relaxedPathChars="\|{}[],%^`~"<>"
relaxedQueryChars="\|{}[],%^`~"<>"这两个参数主要用于处理报错:java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
原因:当访问Tomcat服务器上的特定URL时,如果URL中包含RFC 7230和RFC 3986规范中未定义的字符,Tomcat可能会抛出java.lang.IllegalArgumentException异常。
处理方法:虽然可以通过修改Tomcat的
server.xml中的Connector配置来允许特定字符,但允许反斜杠\可能导致安全问题,因为它可能被用于路径遍历攻击。因此,这种方法通常不推荐。
4.配置各种响应头
一开始我还抱有幻想,在tomcat内部配置,但是查看了一圈文档,包括tomcat官方文档之后,我才发现tomcat可以配置的安全策略有限,并不能全部配置
https://blog.csdn.net/weixin_45457937/article/details/97648305
https://blog.csdn.net/m0_61069946/article/details/129652374
https://cloud.tencent.com/developer/article/1622307
http://svn.apache.org/repos/asf/tomcat/site/trunk/docs/tomcat-8.0-doc/config/filter.html
所以最佳方案还是通过nginx配置安全策略,nginx安全配置可以参考:https://www.cnblogs.com/allay/p/17954392
然后反向代理到tomcat上
代理到tomcat遇到的问题:请求地址由原来的http//:1.1.1.1:7001/login变成了http//:1.1.1.1/login
因为前端并未加任何端口,而是tomcat自带的
解决方案:https://blog.51cto.com/nizuimeiabc1/6266122
proxy_set_header Host $host:$server_port; 这行是关键,让代理地址自动带上请求端口!
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
浙公网安备 33010602011771号