我有以下域名指向我的 nginxmy.web.server
我想将请求代理到/cdn
位于的文件主机file.host/myfiles
配置文件内容如下:
server {
listen 80;
server_name my.web.server;
location ^~ /cdn {
proxy_pass https://file.host/myfiles;
}
}
此配置成功代理了进入目标文件主机的所有请求,但是index.html
如果输入/或路由,则不会重定向。
我想要实现的目标的一个例子如下:
my.web.server/cdn => (proxy) file.host/myfiles/index.html
my.web.server/cdn/ => (proxy) file.host/myfiles/index.html
my.web.server/cdn/images => (proxy) file.host/myfiles/images/index.html
my.web.server/cdn/images/ => (proxy) file.host/myfiles/images/index.html
my.web.server/cdn/** => (proxy) file.host/myfiles/**/index.html
my.web.server/cdn/**/ => (proxy) file.host/myfiles/**/index.html
理想情况下,您不会在 url 中看到 index.html,它只会代理到该文件路径,但是如果这不可能的话,将用户重定向到那里也可以。
我一直在尝试类似的事情:
location ^~ /cdn {
proxy_pass https://file.host/myfiles;
try_files $uri $uri/ $uri/index.html;
}
我希望通过这个实现的是告诉 nginx“在这里代理”,尝试查看是否存在文件,如果没有出现任何内容,则尝试index.html
在该路由中查找。