nginx 无法找到两层深度的 cgi

nginx 无法找到两层深度的 cgi

http://mysite.com/通常,当请求任何其他目录时,我希望提供 index.html 文件。nginx.conf 中的以下内容可实现此目的/test

location /test {
    try_files $uri.html $uri/index.html /index.html =404;
}

如果我想通过 cgi(在 thttpd 上)从同一位置提供文件,这也可以正常工作,提供一个 cgi 编程页面:

location /test {
        proxy_pass http://127.0.0.1:8000;
}

我遇到的问题是如何进入更深层次,例如 /test/page1。如果 page1.html 存在,我希望它提供服务,但如果不存在,我希望它转到 thttpd 服务器并在那里运行 cgi 程序。我尝试过的配置文件中的许多变体要么给我一个重定向循环或文件未找到或服务器错误。其他时候,我可以让它提供 cgi 和 html 文件,但尝试访问目录会导致循环。

以下方法在某种程度上也有效,但是我对尝试不同的变化感到非常疲惫,我迷失了方向。

location /test {
    proxy_pass http://127.0.0.1:8000/test;
}

我确信我只是忽略了一件简单而基本的事情。

相关内容