我很想得到一些帮助,解决一个让我困惑的问题。
我正在测试一个托管平台 Runcloud,用于托管 Nextcloud 服务器。它使用 Apache/Nginx 代理设置,并且有许多不能/不应更改的配置文件。它允许使用“额外”conf 文件来添加额外的 Nginx 声明。
默认的 conf 文件中有这样的规则:
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
此规则导致 Nextcloud 处理大型文件上传的方式以及它在传输完成后拆分文件和将文件合并在一起的方式出现问题,它通过使用隐藏的 .file 来实现这一点,但上述 Nginx 配置拒绝了这一操作。Nextcloud 建议将规则更改为以下内容以解决此问题:
location ~ /\.(?!file).* {
deny all;
access_log off;
log_not_found off;
}
问题是我无法修改原始声明,因为它位于托管服务提供商的默认文件之一中,可以用新更新覆盖。他们建议我使用自定义包含文件来覆盖此行为。
我已按照他们的文档操作,新的位置块已被 Nginx 接收,但并未按预期覆盖行为。我不确定是否可以覆盖,而且我不太清楚更新后的块应该如何在包含文件中呈现。我尝试过更具体地匹配它,但失败了。
任何关于这条规则应该如何制定的建议都将不胜感激!
答案1
来自 RunCloud 支持...
在每个 Web 应用程序的基础上,在 Nginx 配置部分,您可以创建自定义配置文件并选择类型 location.main-before。此配置文件将在 main.conf 之前加载,因此您可以设置自己的位置指令,这些指令将优先于 Web 应用程序的 main.conf 文件。