配置和优化Tomcat香港站群服务器

 

配置和优化 Tomcat 香港站群服务器 是提升网站性能、可靠性、安全性和适应不同流量需求的重要任务。


1. 配置 Tomcat 香港站群服务器的基础步骤

1.1 安装与配置 Tomcat

1.1.1 下载与安装

  1. Apache Tomcat 官方网站 下载适合的版本。
    • 推荐选择稳定版本(如 Tomcat 9 或 10)。
  2. 解压安装:
    bash
     
    tar -xvzf apache-tomcat-<version>.tar.gz
    mv apache-tomcat-<version> /opt/tomcat
    

1.1.2 配置环境变量

~/.bashrc 文件中添加:

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

生效配置:

bash
 
source ~/.bashrc

1.1.3 启动 Tomcat

进入 Tomcat 目录:

bash
 
cd /opt/tomcat/bin
./startup.sh

1.1.4 检查服务

在浏览器中访问 http://<server_ip>:8080,确认 Tomcat 服务已启动。


1.2 配置站群环境

1.2.1 配置多域名站点

  1. 编辑 server.xml
    bash
     
    sudo nano /opt/tomcat/conf/server.xml
    
  2. 为每个站点配置 <Host> 节点:
    xml
     
    <Host name="site1.example.com" appBase="webapps/site1" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/site1" />
    </Host>
    <Host name="site2.example.com" appBase="webapps/site2" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/site2" />
    </Host>
    
  3. 确保 DNS 解析已正确配置(将域名指向服务器 IP 地址)。

1.2.2 配置 HTTPS

  1. 为每个域名申请 SSL 证书(推荐使用免费的 Let's Encrypt)。
  2. 配置 HTTPS 连接:
    • 编辑 server.xml
      xml
       
      <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                 maxThreads="200" SSLEnabled="true">
          <SSLHostConfig>
              <Certificate certificateFile="/etc/ssl/certs/site1.crt"
                           certificateKeyFile="/etc/ssl/private/site1.key"
                           certificateChainFile="/etc/ssl/certs/site1-ca.crt" />
          </SSLHostConfig>
      </Connector>
      

1.2.3 配置虚拟主机自动部署(可选)

conf/Catalina 目录下为每个站点创建配置文件:

bash
 
sudo mkdir -p /opt/tomcat/conf/Catalina/site1.example.com
sudo nano /opt/tomcat/conf/Catalina/site1.example.com/ROOT.xml

内容:

xml
 
<Context docBase="/var/www/site1" path="" reloadable="true" />

2. 优化 Tomcat 性能

2.1 调整 JVM 参数

编辑 Tomcat 的启动脚本 setenv.sh

bash
 
sudo nano /opt/tomcat/bin/setenv.sh

添加以下 JVM 配置:

bash
 
JAVA_OPTS="-Xms4G -Xmx8G -XX:MaxPermSize=256m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat/logs"
  • -Xms-Xmx:设置 JVM 最小/最大堆内存,建议设置为总内存的 50% 左右。
  • -XX:+UseG1GC:使用 G1 垃圾回收器,适合高内存应用。
  • -XX:+HeapDumpOnOutOfMemoryError:在内存溢出时生成堆转储文件,便于排查问题。

2.2 调整连接器参数

编辑 server.xml 中的 <Connector> 配置:

xml
 
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           connectionTimeout="20000"
           maxThreads="500"
           minSpareThreads="50"
           acceptCount="200"
           enableLookups="false"
           compression="on"
           compressionMinSize="2048"
           noCompressionUserAgents="gozilla, traviata"
           compressableMimeType="text/html,text/xml,text/javascript,text/css,application/json" />
  • maxThreads:最大线程数,设置为高并发预期的 2 倍。
  • acceptCount:排队请求数,超出后拒绝连接。
  • compression:启用 GZIP 压缩,减少传输数据量。

2.3 配置缓存

  1. 编辑 web.xml 启用缓存过滤器:

    xml
     
    <filter>
        <filter-name>CacheFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CacheControlFilter</filter-class>
        <init-param>
            <param-name>cacheControl</param-name>
            <param-value>max-age=3600, must-revalidate</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CacheFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  2. 配置静态资源缓存:

    • server.xml 中添加以下内容:
      xml
       
      <Resources cachingAllowed="true" cacheMaxSize="100000" />
      

2.4 配置数据库连接池

  1. 编辑 context.xml 文件:
    bash
     
    sudo nano /opt/tomcat/conf/context.xml
    
  2. 添加数据库连接池配置:
    xml
     
    <Resource name="jdbc/MyDB" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" minIdle="10" initialSize="10"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              driverClassName="com.mysql.cj.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/mydb"
              username="dbuser" password="dbpassword" />
    
  3. 在应用中通过 JNDI 获取连接。

3. 安全优化

3.1 禁用不必要的功能

  1. 禁用默认应用:

    • 删除 /opt/tomcat/webapps/ROOTexamplesdocs 文件夹。
    bash
     
    rm -rf /opt/tomcat/webapps/{ROOT,examples,docs}
    
  2. 禁用 JSP 脚本运行:

    • web.xml 中禁用 JSP:
      xml
       
      <servlet>
          <servlet-name>jsp</servlet-name>
          <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
          <load-on-startup>0</load-on-startup>
          <init-param>
              <param-name>development</param-name>
              <param-value>false</param-value>
          </init-param>
      </servlet>
      

3.2 限制 Tomcat 管理员访问

  1. 修改管理员密码:

    • 编辑 conf/tomcat-users.xml
      xml
       
      <user username="admin" password="securepassword" roles="manager-gui,admin-gui" />
      
  2. 限制 IP 访问:

    • web.xml 中添加访问限制:
      xml
       
      <filter>
          <filter-name>RemoteAddrFilter</filter-name>
          <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
          <init-param>
              <param-name>allow</param-name>
              <param-value>192\.168\.1\.\d+|127\.0\.0\.1</param-value>
          </init-param>
      </filter>
      <filter-mapping>
          <filter-name>RemoteAddrFilter</filter-name>
          <url-pattern>/manager/*</url-pattern>
      </filter-mapping>
      

4. 高可用性优化

4.1 配置负载均衡

使用 NginxHAProxy 配置负载均衡:

    <

超过 50,000 人的信任 网硕互联期待你加入我们的会员。