温馨提示×

Tomcat在Ubuntu上的最佳实践

小樊
65
2025-03-09 23:45:17
栏目: 智能运维

在Ubuntu上部署和配置Tomcat时,遵循最佳实践可以确保服务器的安全性、性能和稳定性。以下是一些关键步骤和最佳实践:

安装和配置

  1. 更新系统

    sudo apt update sudo apt upgrade 
  2. 安装Java

    安装OpenJDK,例如:

    sudo apt install openjdk-11-jdk 
  3. 下载并解压Tomcat

    Tomcat官网下载最新版本的Tomcat,然后解压到适当的位置,例如/opt/tomcat

  4. 配置环境变量

    编辑~/.bashrc文件,添加以下内容:

    export CATALINA_HOME=/opt/tomcat export PATH=$PATH:$CATALINA_HOME/bin 

    使配置生效:

    source ~/.bashrc 
  5. 启动和启用Tomcat服务

    创建systemd服务文件:

    sudo nano /etc/systemd/system/tomcat.service 

    添加以下内容:

    [Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 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 

    启用并启动Tomcat服务:

    sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat 

安全性

  1. 限制管理控制台访问

    重命名管理控制台目录,例如将manager重命名为new_manager,并限制访问IP地址。

  2. 配置管理用户的验证

    $CATALINA_HOME/conf/tomcat-users.xml中创建用户并分配必要的角色。

  3. 配置SSL/TLS

    获取SSL/TLS证书,编辑$CATALINA_HOME/conf/server.xml文件,配置连接器以启用HTTPS:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" sslEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="/path/to/your/keystore.p12" keystorePass="your_keystore_password" keyAlias="tomcat" clientAuth="false" sslProtocol="TLS" /> 

性能优化

  1. JVM调优

    编辑$CATALINA_HOME/bin/catalina.sh,设置JVM参数:

    JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC" 
  2. 线程池配置

    $CATALINA_HOME/conf/server.xml中配置连接器线程池参数:

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="250" minSpareThreads="50" maxConnections="1000" acceptCount="100" /> 
  3. 内核参数优化

    编辑/etc/sysctl.conf文件,优化网络栈参数:

    net.ipv4.tcp_syncookies=1 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_fin_timeout=60 net.ipv4.tcp_synack_retries=1 net.ipv4.tcp_syn_retries=1 net.ipv4.tcp_fastopen=3 net.ipv4.tcp_keepalive_time=1200 net.ipv4.tcp_max_syn_backlog=8192 net.ipv4.tcp_max_tw_buckets=5000 net.ipv4.ip_local_port_range="1024 65535" net.core.netdev_max_backlog=8192 net.core.somaxconn=8192 net.core.rmem_max=12582912 net.core.rmem_default=6291456 net.core.wmem_max=12582912 net.core.wmem_default=6291456 

    应用配置:

    sudo sysctl -p 
  4. 启用压缩

    $CATALINA_HOME/conf/server.xml中配置连接器以启用压缩:

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" /> 

遵循这些最佳实践,您可以在Ubuntu上成功部署和配置Tomcat,确保其安全性、性能和稳定性。

0