我将我的网站页面缓存到静态平面文件缓存中,并尝试使用 try_files 指令首先从缓存加载文件(如果存在),然后转到 Web 应用程序。
我基本上想做这样的事情:
try_files $uri $uri/ /var/www/vhosts/example.com/httpdocs/staticfilecache/$uri/index.html
在此示例中,如果用户请求 example.com/products/,它将尝试 staticfilecache/products/index.html 我遇到的问题是 $uri 已经包含尾部斜杠。尝试将其与 $uriindex.html 一起使用会产生错误。
是否有任何高性能/简单的方法来始终删除/但不重写浏览器中的地址?
最佳答案
您正在尝试做的事情在很多层面上都有很多问题。
- “/var/www/vhosts/$uri”无效。除非你有重复的 staticfilecache 文件夹下的整个文档根目录。
- Nginx 有自己的缓存系统,会先自行检查 只要设置完毕,就不需要您的任何干预。
- 只要设置了索引指令,Nginx 就会自行检查索引文件。
- 您的代码实际上是在尝试检查静态缓存的最后一个和 不是像你说的那样首先。
- 在磁盘上创建静态文件缓存是没有意义的。 Nginx 可以 也可以从原始位置读取静态文件。
- 无论如何,Nginx 都会为需要缓存的项目创建缓存, 通常是动态文件本身。这不是一项体力工作。
基本上,看起来您在某些网络服务器基础知识上有点走错了路。
关于nginx - 删除 nginx 中 $uri 的尾部斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480257/