rundreamsFly 2024-03-20 13:46 采纳率: 50%
浏览 124
已结题

Nginx配置静态文件代理

问题遇到的现象和发生背景

Nginx配置代理静态文件重定向问题

操作环境、软件版本等信息

Nginx 1.20

img

需要代理到 该目录:/opt/data/minio/data/
目录文件也存在:

ll   /opt/data/minio/data/iot-laboratory/2023-10-27/image_20231027091833.png
尝试过的解决方法

网上能搜索到的都已经尝试过啦:调整location 、 使用root 、alias 貌似都不能访问

同样的配置我在测试环境就行,生产环境就不行。

img

先是 301 Moved Permanently
然后 403 Forbidden
像是转发了的

我想要达到的结果

能够正常代理静态文件。

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-20 14:00
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,你的Nginx配置似乎有一些问题,导致301重定向和403 Forbidden错误。让我们逐步分析并解决这个问题。

    首先,让我们简化并修复你的location块,以便更好地处理/ms/路径下的静态文件。这里是一个可能的修复配置:

    http {
        server {
            listen 8090;
            server_name your_server_name;
    
            gzip on;
            gzip_vary on;
    
            location /ms/ {
                alias /opt/data/minio/data/;
                try_files $uri $uri/ =404;
                index index.html;
            }
    
            access_log /var/log/nginx/minio_access.log;
            error_log  /var/log/nginx/minio_error.log;
        }
    }
    

    确保替换your_server_name为你的实际服务器名称。这个配置应该能正确地代理/ms/路径下的静态文件。

    有几个关键点需要注意:

    1. listen指令应该只在一个server块中定义,而不是在多个location块中。
    2. alias指令用于指向文件系统的路径,try_files则用于处理请求的文件路径。
    3. access_logerror_log用于记录日志,这有助于调试问题。

    如果你已经尝试过使用root指令而不是alias,并且仍然遇到问题,那么可能是其他配置部分的问题,或者是权限问题。请检查以下几点:

    1. 权限:确保Nginx用户(通常是www-datanginx)对/opt/data/minio/data/目录有读取权限。
    2. 配置文件语法:运行nginx -t检查配置文件是否有语法错误。
    3. 重启Nginx:更新配置后,重启Nginx服务以应用更改:sudo service nginx restart
    4. 检查日志:查看/var/log/nginx/minio_error.log以获取任何可能的错误信息。

    如果上述步骤仍然没有解决问题,可能需要进一步调查Nginx的配置,包括其他可能影响此路径的location块,以及任何可能的全局重写规则。如果还有问题,请提供更详细的配置文件内容和错误日志,以便我能提供更具体的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月21日
  • 创建了问题 3月20日