配置 Nginx 加速来自部署在其他地区的 Web服务

为了配置 Nginx 以缓存和加速来自部署在其他机房的 Tomcat 服务器返回的 JavaScript(js)文件和图片资源,你需要在 Nginx 配置文件中设定缓存行为和代理相关的设置。这些步骤旨在减少从客户端到 Tomcat 资源的加载时间,并通过 Nginx 提供缓存的资源。

下面给你一个配置示例:

  1. 配置代理和缓存存储路径 - 确认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 的版本以及操作系统的环境有所不同,请根据实际情况进行调整。

相关推荐
偶尔上线经常挺尸6 小时前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错
yoyo_zzm6 小时前
Laravel9.x新特性全解析
数据库·mysql·nginx
yoyo_zzm9 小时前
Laravel8.x新特性全解析
数据库·nginx
虹科网络安全12 小时前
艾体宝新闻|Redis 月度更新速览:2026 年 3 月
数据库·redis·缓存
1892280486112 小时前
EMMC32G-TA28闪存EMMCH26M78103CCR
大数据·人工智能·缓存
逍遥德14 小时前
SpringBoot数据库连接池HikariCP,Druid,Tomcat JDBC,DBCP2,c3p0配置使用
数据库·spring boot·tomcat
冷小鱼15 小时前
MyBatis 与 MyBatis-Plus:从入门到精通的完整指南
java·tomcat·mybatis
计算机安禾15 小时前
【Linux从入门到精通】第32篇:Nginx入门——高性能Web服务器搭建
linux·服务器·nginx
IT界的老黄牛16 小时前
停电后 Redis 集群两节点起不来:fix 完还报 Bad file format?多部分 AOF 修复的正确姿势
运维·redis·缓存
程序员Linc18 小时前
双击nginx.exe5次之后,我的项目管理平台挂了
运维·nginx