我有两台服务器:一台托管网站和一些动态内容,另一台运行一些小型服务,但由于磁盘空间较大,还(应该)充当文件主机。文件不需要网站,我只需能够浏览文件目录来找到我需要的文件。此服务器与面向外部的服务器私下联网,连接(公共 <=> 外部 <=> 内部)运行良好。
我想要做的是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;
是为了防止这种情况发生。我该如何解决这个问题并让它显示我的文件?