
配置和优化Tomcat香港站群服务器
2025-09-04 16:04
阅读量:110

配置和优化 Tomcat 香港站群服务器 是提升网站性能、可靠性、安全性和适应不同流量需求的重要任务。
1. 配置 Tomcat 香港站群服务器的基础步骤
1.1 安装与配置 Tomcat
1.1.1 下载与安装
- 从 Apache Tomcat 官方网站 下载适合的版本。
- 推荐选择稳定版本(如 Tomcat 9 或 10)。
- 解压安装:
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 配置多域名站点
- 编辑
server.xml:bashsudo nano /opt/tomcat/conf/server.xml - 为每个站点配置
<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> - 确保 DNS 解析已正确配置(将域名指向服务器 IP 地址)。
1.2.2 配置 HTTPS
- 为每个域名申请 SSL 证书(推荐使用免费的 Let's Encrypt)。
- 配置 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 配置缓存
-
编辑
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> -
配置静态资源缓存:
- 在
server.xml中添加以下内容:xml<Resources cachingAllowed="true" cacheMaxSize="100000" />
- 在
2.4 配置数据库连接池
- 编辑
context.xml文件:bashsudo nano /opt/tomcat/conf/context.xml - 添加数据库连接池配置:
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" /> - 在应用中通过 JNDI 获取连接。
3. 安全优化
3.1 禁用不必要的功能
-
禁用默认应用:
- 删除
/opt/tomcat/webapps/ROOT、examples和docs文件夹。
bashrm -rf /opt/tomcat/webapps/{ROOT,examples,docs} - 删除
-
禁用 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 管理员访问
-
修改管理员密码:
- 编辑
conf/tomcat-users.xml:xml<user username="admin" password="securepassword" roles="manager-gui,admin-gui" />
- 编辑
-
限制 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 配置负载均衡
使用 Nginx 或 HAProxy 配置负载均衡:
-
<
上一篇:香港虚拟主机购买后如何安装使用 WordPress程序?
下一篇:香港高防服务器风扇故障导致过热问题的解决方案.
