使用 proxy_pass 时,Nginx 不会从远程服务器提供静态文件

使用 proxy_pass 时,Nginx 不会从远程服务器提供静态文件

我有两台服务器:一台托管网站和一些动态内容,另一台运行一些小型服务,但由于磁盘空间较大,还(应该)充当文件主机。文件不需要网站,我只需能够浏览文件目录来找到我需要的文件。此服务器与面向外部的服务器私下联网,连接(公共 <=> 外部 <=> 内部)运行良好。

我想要做的是proxy_pass将文件位置定位到内部服务器。外部服务器上的配置如下:

  location /files/ {
  proxy_pass http://10.10.10.3:80/files/;
  autoindex on;
  autoindex_exact_size off;
  }

  location /files/<redacted>/ {
  proxy_pass http://10.10.10.3:80/files/<redacted>/;
  auth_basic on;
  autoindex on;
  autoindex_exact_size off;
  }

而内部服务器有这个:

server {
  server_name my.domain;
  root /var/www/html/mydomain/;
  autoindex on;

  location /files/ {
  autoindex on;
  autoindex_exact_size off;
  }

  location /files/<redacted>/ {
  autoindex on;
  autoindex_exact_size off;
  }

}

我知道两者正在通信并且代理正在工作,因为内部服务器在日志中显示活动,这让我想到了我的问题:内部服务器给出 404 而不是显示 /files/ 目录。错误日志显示以下内容:

2019/03/08 21:55:02 [error] 19252#19252: *30 "/var/www/html/mydomain/files/index.html" is not found (2: No such file or directory), client: 10.10.10.7, server: mydomain, request: "GET /files/ HTTP/1.1", host: "mydomain"

我不明白它为什么要寻找索引文件!我的理解是,这autoindex on;是为了防止这种情况发生。我该如何解决这个问题并让它显示我的文件?

相关内容