在Debian系统中配置Tomcat涉及多个步骤,包括安装、基础配置、性能优化、安全加固等。以下是一个详细的配置指南:
sudo apt update
sudo apt upgrade
sudo apt install default-jdk
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
sudo tar -xvf apache-tomcat-9.0.56.tar.gz -C /opt
sudo mv /opt/apache-tomcat-9.0.56 /opt/tomcat
/etc/profile.d/tomcat.sh
文件,添加以下内容:export CATALINA_HOME=/opt/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
然后使环境变量生效:
source /etc/profile.d/tomcat.sh
tomcat.service
的文件,放置在 /etc/systemd/system/
目录下:sudo nano /etc/systemd/system/tomcat.service
将以下内容粘贴到文件中,并修改 JAVA_HOME
以匹配你的JDK安装路径:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
重新加载systemd并启动Tomcat:
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
如果你的系统启用了防火墙(如UFW),需要允许HTTP和HTTPS流量:
sudo ufw allow 'Tomcat Full'
打开浏览器,访问 http://your_server_ip:8080
,你应该能看到Tomcat的默认页面。
编辑 /etc/tomcat9/server.xml
文件,修改HTTP和HTTPS的端口号:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" />
<Connector port="8444" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" />
在 server.xml
中使用 Host
标签配置多个虚拟主机:
<Engine name="Catalina" defaultHost="www.example.com">
<Host name="www.example1.com" appBase="webapps/example1"
unpackWARs="true" autoDeploy="true" />
<Host name="www.example2.com" appBase="webapps/example2"
unpackWARs="true" autoDeploy="true" />
</Engine>
调整连接器参数以优化性能:
<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200" minSpareThreads="10"
acceptCount="100" compression="on"
compressionMinSize="2048" />
禁用管理端弱口令:
在 tomcat-users.xml
中配置强密码,禁用默认的管理员账户。
隐藏版本信息:
在 web.xml
中配置错误页面,隐藏Tomcat版本信息。
配置 logging.properties
文件,启用按天分割日志文件:
handlers = 1catalina.org.apache.juli.AsyncFileHandler
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.rotatable = true
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
编辑 catalina.sh
文件,设置JVM内存参数:
JAVA_OPTS="$JAVA_OPTS -server -Xms512m -Xmx1024m"