tomcat

tomcat9配置优化及使用jdk11的调整

星期四, 三月 12th, 2020 | JAVA-and-J2EE | 没有评论

把常用调整的部分整理记录了下,方便自己以后翻阅和调整

本人实际tomcat9应用中,只注释了conf/server.xml下ajp的服务,新增了bin下的setenv.sh 的JVM配置及spring外置的配置文件

那些调整数值的根据自行配置调整.

1.系统启用nginx+tomcat配合

2.本文主要优化tomcat的配置项目

配置项参考:http://tomcat.apache.org/tomcat-9.0-doc/config/http.html

2.1 关闭AJP端口及war包的热部署
› Continue reading

Tags: , , ,

Apache Tomcat AJP协议文件读取与包含漏洞的版本升级及关闭AJP功能

星期六, 二月 22nd, 2020 | JAVA-and-J2EE | 没有评论

1.阿里云提醒对应的安全风险:

Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器。默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。

但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应用根目录下的任意文件,如果存在文件上传功能,将可以导致任意代码执行。

漏洞利用AJP服务端口实现攻击,未开启AJP服务对外不受漏洞影响(tomcat默认将AJP服务开启并绑定至0.0.0.0)。

阿里云应急响应中心提醒 Apache Tomcat用户尽快排查AJP端口对外情况并采取安全措施阻止漏洞攻击。

影响版本

Apache Tomcat 6
 
Apache Tomcat 7 < 7.0.100
 
Apache Tomcat 8 < 8.5.51
 
Apache Tomcat 9 < 9.0.31

安全版本

Apache Tomcat 7.0.100
 
Apache Tomcat 8.5.51
 
Apache Tomcat 9.0.31

2.查看了下自己并不需要ajp的功能,最简单的方法只时间注销此项功能即可,同时也可以少监听一个端口

具体操作:

› Continue reading

Tags: ,

nginx配置ssl后代理tomcat获取不到https

星期五, 二月 14th, 2020 | JAVA-and-J2EE | 没有评论

1.前置使用nginx做了反向代理

2.服务有tomcat提供,在tomcat里有获取getScheme总是http而不是https,需要解决.

遇见的问题如下:

request.getScheme()  //总是 http,而不是实际的http或https  
request.isSecure()  //总是false(因为总是http)  
request.getRemoteAddr()  //总是 nginx 请求的 IP,而不是用户的IP  
request.getRequestURL()  //总是 nginx 请求的URL 而不是用户实际请求的 URL  
response.sendRedirect( 相对url )  //总是重定向到 http 上 (因为认为当前是 http 请求)

3.解决办法

› Continue reading

Tags: ,

springboot之使用tomcat部署脚本及环境设置

星期三, 一月 8th, 2020 | JAVA-and-J2EE, linux | 没有评论

1.部署脚本deploy.sh

cp /ia/apps/java/pomelolee-1.0.0-GA.war /usr/local/webserver/apache-tomcat-9/webapps/ROOT.war

2.启动脚本start.sh

/usr/local/webserver/apache-tomcat-9/bin/startup.sh

3.关闭脚本shut.sh

/usr/local/webserver/apache-tomcat-9/bin/shutdown.sh

4.配置指定tomcat容器加载springboot的启动配置文件

在/usr/local/webserver/apache-tomcat-9/bin 文件夹下设置setenv.sh文件指定文件加载配置,toncat启动时 会自动加载此配置

其他jvm的调优配置也都直接配置到此处,方便复用;启用配置中心的部分可以参考激活设置,此处不用做说明.

CATALINA_OPTS="$CATALINA_OPTS  -Dspring.config.location=/ia/config/pomelolee/application.properties"

Tags: ,

err_incomplete_chunked_encoding遭遇及修复

星期日, 一月 8th, 2017 | JAVA-and-J2EE | 没有评论

在chrome遭遇 err_incomplete_chunked_encoding 此错误

查看了下 nginx 并没有发现是其的错误

看了tomcat 是 request header is too large 的问题

修复之

1
2
3
4
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" maxHttpHeaderSize="65536" maxPostSize="4194304"  
               URIEncoding="UTF-8"/>

搞定

Tags:

踩坑tomcat8.5的cookie机制

星期六, 八月 20th, 2016 | JAVA-and-J2EE | 没有评论

tomcat升级到8.5版本

发现登录和退出报错,报错日志为下

[http-nio-8080-exec-20] 2016 Aug 20 12:04:49 WARN  WARN:187 - Handler execution resulted in exception
java.lang.IllegalArgumentException: An invalid domain [.i5a6.com] was specified for this cookie
        at org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateDomain(Rfc6265CookieProcessor.java:181)
        at org.apache.tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.java:123)
        at org.apache.catalina.connector.Response.generateCookieString(Response.java:989)
        at org.apache.catalina.connector.Response.addCookie(Response.java:937)
        at org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:386)

网上已有哥们查看了tomcat的源码 总结规则如下:

domain规则如下
1、必须是1-9、a-z、A-Z、. 、- (注意是-不是_)这几个字符组成

2、必须是数字或字母开头 (所以以前的cookie的设置为.i5a6.com 的机制要改为 i5a6.com 即可)

3、必须是数字或字母结尾

解决之法: 升级处理cookie的domain的地方即可 由 (.i5a6.com 的机制要改为 i5a6.com )搞定

Tags:

apache,nginx反向代理出现内网ip解决方法

星期四, 二月 23rd, 2012 | JAVA-and-J2EE, linux | 没有评论

apache中设置如下反向代理后端的tomcat出现
request.getServerName();获取到的主机名称就会是localhost,解决这个

<VirtualHost *:80>
    ServerAdmin service@i5a6.com
    DocumentRoot /usr/local/apache/htdocs
    ServerName i5a6.com
    ServerAlias *.i5a6.com
     DirectoryIndex  index.html  index.html.var  index.jsp
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/
     ErrorLog "logs/hscode-error.log"
     CustomLog "logs/hscode-access.log" common
</VirtualHost>

在httpd.conf 文件中增加:
ProxyPreserveHost On 即可

对应的nginx 也有此问题解决之法:
proxy_set_header Host $host;

upstream mytomcat{
 #server 127.0.0.1:8000 weight=3;
 #server 127.0.0.1:8001;
 #server 127.0.0.1:8002;
 server 127.0.0.1:8080;
 }
 
server
{
listen 80;
server_name i5a6.com *.i5a6.com;
index index.html index.htm ;
root /usr/local/data/htdocs/www;
 
location / {
# proxy_set_header Host %host;
# proxy_set_header X-Forwarded-For $remote_addr;
 proxy_pass http://mytomcat;
proxy_set_header Host $host;
 }

Tags: , , , ,

Search

文章分类

Links

Meta