在Debian系统上配置Tomcat涉及多个步骤,包括安装Tomcat、配置环境变量、设置systemd服务以及启动和验证Tomcat服务。以下是详细的配置指南:
首先,确保你的系统已经安装了Java Development Kit (JDK)。可以使用以下命令安装OpenJDK:
sudo apt update
sudo apt install default-jdk
然后,下载并解压Tomcat:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
tar -zxvf apache-tomcat-9.0.76.tar.gz
sudo mv apache-tomcat-9.0.76 /opt/tomcat
为了安全起见,不建议以root用户运行Tomcat。创建一个新的用户和组:
sudo groupadd tomcats
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
设置Tomcat目录和文件的所有权:
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R 755 /opt/tomcat/conf
sudo chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/
创建一个systemd服务文件以便于管理Tomcat服务:
sudo nano /etc/systemd/system/tomcat.service
在文件中添加以下内容:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
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"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存并退出编辑器,然后重新加载systemd配置:
sudo systemctl daemon-reload
启动Tomcat服务:
sudo systemctl start tomcat
验证Tomcat是否正常运行:
在Web浏览器中访问 http://your_server_ip:8080 ,如果看到Tomcat的默认欢迎页面,则表示安装成功。
默认情况下,Tomcat使用8080端口。如果需要更改端口,可以编辑 conf/server.xml
文件,找到以下行:
Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
修改 port
属性的值为你希望使用的端口号,然后保存文件并重新启动Tomcat服务。
为了安全起见,默认情况下Tomcat的Web管理界面是禁用的。你需要编辑 conf/tomcat-users.xml
文件,添加一个具有管理角色的用户:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="your_password" roles="manager-gui,admin-gui"/>
</tomcat-users>
保存文件并重新启动Tomcat服务。
调整连接器参数:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="200" minSpareThreads="10" acceptCount="100" compression="on" compressionMinSize="2048"/>
启用APR本地库(如果系统支持):安装 tomcat-native
库并配置环境变量以提升静态资源处理性能。
配置Tomcat管理员账户:
<security-constraint>
<web-resource-collection>
<web-resource-name>Manager</web-resource-name>
<url-pattern>/manager/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
<role-name>admin-gui</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager</realm-name>
</login-config>
修改默认端口:在 server.xml
中修改默认端口(如8080)以避免容易被扫描。
禁用管理端弱口令:确保不使用默认密码,如 tomcat/s3cret
。
隐藏版本信息:在 web.xml
中配置以防止泄露服务器版本。
启用日志切割:
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.