在CentOS上配置Tomcat缓存可以通过多种方式实现,以下是一些常见的方法:
你可以通过修改Tomcat的web.xml文件来配置HTTP响应缓存。以下是一个示例配置:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <filter> <filter-name>CacheFilter</filter-name> <filter-class>org.apache.catalina.filters.CacheFilter</filter-class> <init-param> <param-name>maxCacheSize</param-name> <param-value>10240</param-value> <!-- 缓存大小,单位为KB --> </init-param> <init-param> <param-name>cacheTTL</param-name> <param-value>3600</param-value> <!-- 缓存时间,单位为秒 --> </init-param> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> 如果你使用Nginx作为Tomcat的反向代理,可以在Nginx中配置缓存。以下是一个示例配置:
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 缓存配置 proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; } } Varnish是一个高性能的HTTP加速器,可以作为Tomcat的前置缓存服务器。以下是一个简单的Varnish配置示例:
vcl 4.0; backend default { .host = "localhost"; .port = "8080"; } sub vcl_recv { # 设置缓存键 set req.http.X-Cache-Key = req.http.host + req.http.uri; } sub vcl_backend_response { # 设置缓存时间 if (bereq.http.Cache-Control ~ "max-age") { set beresp.ttl = std.duration(bereq.http.Cache-Control ~ "max-age=(\d+)") ? std.atoi(std.regex(bereq.http.Cache-Control ~ "max-age=(\d+)")) : 3600s; } else { set beresp.ttl = 3600s; } } sub vcl_deliver { # 添加缓存控制头 if (obj.hits > 0) { set resp.http.X-Cache = "HIT"; } else { set resp.http.X-Cache = "MISS"; } } 你也可以在Tomcat的context.xml文件中配置缓存。以下是一个示例配置:
<Context> <Resources cachingAllowed="true" cacheMaxSize="102400" cacheTTL="3600"/> </Context> 以上方法可以根据你的具体需求选择合适的缓存配置方式。通常情况下,使用Nginx或Varnish作为反向代理并配置缓存可以提供更好的性能和灵活性。