为了配置 Nginx 以缓存和加速来自部署在其他机房的 Tomcat 服务器返回的 JavaScript(js)文件和图片资源,你需要在 Nginx 配置文件中设定缓存行为和代理相关的设置。这些步骤旨在减少从客户端到 Tomcat 资源的加载时间,并通过 Nginx 提供缓存的资源。
下面给你一个配置示例:
-
配置代理和缓存存储路径 - 确认
proxy_cache_path
参数所使用的文件系统有充足的空间用来保存缓存。http { # 声明一个缓存路径,包含缓存级别及存放目录等信息 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { listen 80; # 定义代理服务器缓存键,通常包括请求方法,域名,请求URI等 proxy_cache_key "$scheme$request_method$host$request_uri"; # [...] location / { # 代理转发设置 proxy_pass http://your_tomcat_server_ip:port; 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_cache指令以启用对特定位置的缓存 proxy_cache my_cache; add_header X-Proxy-Cache $upstream_cache_status; # 根据需要设置缓存过期时间 proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; # 图片和JS是否被缓存,如果符合pattern则缓存。 location ~* \.(js|jpg|jpeg|png|gif|ico|css|svg)$ { proxy_cache_valid 200 1d; proxy_pass http://your_tomcat_server_ip:port; } } } }
记得将
your_tomcat_server_ip:port
替换为您的 Tomcat 服务器的 IP 地址和端口号。上述配置定义了缓存路径和一些规则(比如是否忽略特定HTTP响应码的页面),variant键(一个键描述了一个特定的请求),以及特殊文件类型的缓存策略,例如Js文件和图片文件的匹配模式。
请确保 Nginx 的用户
nginx
(或者运行 Nginx 进程的任意用户)有权限写入设置的缓存目录,不然它不能创建或修改该目录下的缓存文件。修改配置后,记得使用
nginx -t
来测试配置文件是否正确,然后使用systemctl restart nginx
或者/etc/init.d/nginx restart
来重启 Nginx 服务,使修改生效。注意:具体的配置可能根据您的需求、Nginx 的版本以及操作系统的环境有所不同,请根据实际情况进行调整。