【Nginx】相关优化

一、open() min.js.map failed

访问nginx时,提示错误:

2026/02/20 02:43:03 error 2369#2369: *336 open() "/home/apps/tomcat/webapps/ROOT/resources/lib/vxe-table/index.umd.min.js.map" failed (2: No such file or directory), client: 59.42.87.52, server: www.demo.com, request: "GET /resources/lib/vxe-table/index.umd.min.js.map HTTP/1.1", host: "www.demo.com"

1.1、原因

浏览器默认会请求 .map 文件(Source Map)用于调试,但是Tomcat里面没有.map文件,或者 Nginx 的 try_files 配置会优先查找本地文件而不是代理到 Tomcat。

1.2、方案

关闭 Source Map 请求即可(如果确实需要,也可以把.map文件部署到服务器)。

复制代码
server {
    listen 80;
    server_name www.demo.com;
    
    location / {
        proxy_pass http://localhost:8080;  # 你的Tomcat地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
    # 拦截所有 .map 请求,返回 204 No Content,不记录错误日志
    location ~* \.map$ {
        access_log off;
        log_not_found off;
        return 204;
    }
}

1.3、最佳实践

复制代码
server {
    listen 80;
    server_name www.demo.com;
    
    # 日志优化:忽略常见的静态资源找不到错误
    error_log /var/log/nginx/error.log warn;
    
    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;
    }
    
    # 可选:直接处理静态资源缓存,减少Tomcat压力
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
        
        # 关键:try_files 失败时回源到Tomcat
        try_files $uri @proxy;
    }
    
    location @proxy {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
    }
    
    # 屏蔽 .map 请求,减少无效日志
    location ~* \.map$ {
        access_log off;
        log_not_found off;
        return 204;
    }
}

这里做了几个优化:

1、静态资源直接通过Nginx来处理,减小tomcat的压力

2、屏蔽.map请求,且不记录错误日志

相关推荐
小宋102121 分钟前
A2UI从零实战:Agent安全生成交互界面与事件回传
javascript·人工智能·安全·交互
心易行者33 分钟前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
科技研学社40 分钟前
精度决胜品质:羽绒服缝制工艺标准与自动化精度对标解析
运维·自动化
夜之眷属1 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
Initialize293081 小时前
Redis 内存打满、连接数飙红?运维排查四步法
运维
大包子1 小时前
structuredClone vs lodash.cloneDeep:核心差异与选型指南
javascript·vue.js
zly35001 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器
零基础1231 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell
帷幕落秋1 小时前
Docker的两种安装
运维·docker·容器
lerhxx1 小时前
AI 应用中的上下文管理 —— 从"上下文窗口"到"分层压缩"的工程实践
前端·javascript