时间:2023-06-29 08:57:01 | 来源:网站运营
时间:2023-06-29 08:57:01 来源:网站运营
Tomcat 安全配置与性能优化:目录export JAVA_OPTS="-server -Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxPermSize=512m"
-Xms 指定初始化时化的栈内存securerandom.source=file:/dev/urandom替换成 securerandom.source=file:/dev/./urandom
2. Tomcat 优化<Connector port="8080" address="localhost" maxThreads="2048" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8181" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
提示maxThreads 客户请求最大线程数minSpareThreads 初始化时创建的 socket 线程数maxSpareThreads 连接器的最大空闲 socket 线程数
2.2. 虚拟主机<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" compressionMinSize1="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,,application/octet-stream"/>
提示compression 打开压缩功能 compressionMinSize 启用压缩的输出内容大小,这里面默认为2KBcompressableMimeType 压缩类型
3. Tomcat 安全配置<Server port="-1" shutdown="SHUTDOWN">
3.2. 安装后初始化配置rm -rf /srv/apache-tomcat/webapps/*
注释或删除 tomcat-users.xml 所有用户权限,看上去如下: # cat conf/tomcat-users.xml<?xml version='1.0' encoding='utf-8'?><tomcat-users></tomcat-users>
3.2.1. 隐藏版本信息vim $CATALINA_HOME/conf/server.xml <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="8192" minSpareThreads="64" maxSpareThreads="128" acceptCount="128" enableLookups="false" server="Neo App Srv 1.0"/># curl -I http://localhost:8080/HTTP/1.1 400 Bad RequestTransfer-Encoding: chunkedDate: Thu, 20 Oct 2011 09:51:55 GMTConnection: closeServer: Neo App Srv 1.0
服务器信息已经被改为 Server: Neo App Srv 1.0<Context path="" docBase="path/to/your" reloadable="false" sessionCookiePath="/" sessionCookieName="PHPSESSID">
3.3. 启动用户与端口groupadd -g 80 daemonadduser -o --home /daemon --shell /sbin/nologin --uid 80 --gid 80 -c "Web Server" daemon
注意 /sbin/nologin , 意味着该用户不能登录,同时我也没有给它指定密码,这个用户只能用于启动tomcat,没有Shell权限就以为只被注入后无法运行linux命令。chown daemon:daemon -R /srv/*su - daemon -c "/srv/apache-tomcat/bin/startup.sh"
接下来解决80端口问题, 思路就是80去调用8080,或者映射端口。iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080取消跳转iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080查看规则iptables -t nat -L
另一个就是从80请求去调用8080的方案adduser --home /www -c "Web Application" www
我的Tomcat安装在/srv目录下,但应用程序放在/www目录下,一般是这样的结构。/www/example.com/www.example.com
每次升级将压错包解压到 /www/http://example.com/目录下,http://www.example.com 是符号连接,连接到刚刚解压的目录。关键词:性能,安全,配置