You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置将/tmp映射为/npm-logs访问异常求助

问题排查与解决

核心问题分析

访问/npm-logs时,请求会落入根路径/的location块(因为你的配置只匹配/npm-logs/带尾斜杠的路径),而根路径指向React应用,应用没有对应路由,因此显示前端错误页面。此外,SELinux可能限制Nginx读取/tmp目录,即使文件系统权限正常。

修复步骤

1. 修正Nginx配置,处理无尾斜杠的请求

在现有location /npm-logs/块前添加精确匹配规则,将/npm-logs重定向到带尾斜杠的路径:

location = /npm-logs {
    return 301 $scheme://$host/npm-logs/;
}

location /npm-logs/ {
    autoindex on;
    alias /tmp/;
    add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0";
}

这样访问/npm-logs会自动跳转到/npm-logs/,匹配正确的目录索引规则。

2. 检查并调整SELinux策略

RHEL/CentOS系统中,SELinux默认会阻止Nginx读取/tmp目录,即使文件权限正常:

  • 临时关闭SELinux测试:
    setenforce 0
    
    若访问正常,说明SELinux是限制因素。
  • 永久允许Nginx读取用户内容:
    setsebool -P httpd_read_user_content 1
    

3. 清理浏览器缓存

访问日志中的304响应说明浏览器缓存了旧内容,需清理缓存或使用无痕模式测试新配置。

4. 重启Nginx应用配置

systemctl restart nginx

内容的提问来源于stack exchange,提问作者Ashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:35:25