NextCloud 使用 https 反向代理后 PC 端异常

本贴最后更新于 954 天前,其中的信息可能已经时移世易

NextCloud 安装在家里自己之前攒的主机上,通过阿里云的 ecs 服务器做了中转,绑定了 https 域名后浏览器访问没啥问题,PC 端在录入完域名地址重新链接时,一直提示"尽管登录 url 以 https 开头,但轮询 url 中没有*******"。百度一波后才知道,需要在 NextCloud 中配置代理白名单,以及代理访问协议。如下图:
image.png

其中 trusted_proxies 参数设置为包含代理服务器 IP 地址的数组,
overwritehost 是指实际代理使用的域名
overwriteprotocol 是指代理访问所使用的协议

参考答案&以下内容-来源地址:

可以对 Nextcloud 配置反向代理,使反向代理服务缓存诸如图片、CSS、JS 这样的静态文件,或将处理 HTTPS 请求的负载转移到其他服务器上,也可以利用多台服务器配置负载平衡。

参数格式

下文中所介绍的参数需要添加到 config/config.php 文件中的 $CONFIG = array (...) 中才可生效,格式遵守 PHP 数组的语法

定义可信代理

安全起见,你必须为 Nextcloud 指定可以信赖的反向代理服务器。来自可信代理的请求将会被做特殊处理以获取客户端的真实信息,确保访问控制和日志不会出错。相关的参数可以在 config/config.php 中设置。

trusted_proxies 参数设置为包含代理服务器 IP 地址的数组,以定义 Nextcloud 可以信任的代理服务器。此参数可防止客户端受到欺骗,您应像保护您的 Nextcloud 服务器一样保护这些服务器。

一个反向代理服务应该能够在 HTTP 头部中包含客户端的真实 IP,Nextcloud 能够使用这样的 HTTP 头部获取客户端的 IP 地址。Nextcloud 默认使用实际中的标准头部'X-Forwarded-For',如果你想修改默认值,可以在 forwarded-for-headers 参数中设置。该参数是一个 PHP 字符串查找数组,例如 ‘X-Forwarded-For’ 要写成‘HTTP_X_FORWARDED_FOR’,如果设置不正确,客户端的 IP 地址对于 Nextcloud 来说是不可见的。至于头部中'X-Forwarded-For'的取值,将取决于反向代理服务器的配置。

一般的,对于 Nginx,我们可以添加如下内容到 location{}块中,使 Nginx 在客户端请求的 HTTP 头部标出客户端的真实 IP,然后传给后端的 Nextcloud。

proxy_set_header X-Forwarded-For 
$proxy_add_x_forwarded_for;

覆盖参数

Nextcloud 对主机名,协议或 web 目录的自动检测可能会在使用反向代理服务器的某些情况下失效。该配置用于手动覆盖自动检测。

如果 Nextcloud 未能成功地检测到主机名、协议和 web 目录,你可以使用 config/config.php 中的 overwrite 参数来覆盖它们。overwritehost 参数用于设定反向代理服务器的主机名,可以同时指定端口号。overwriteprotocol 参数用于设定反向代理服务器所使用的协议,有 HTTP 和 HTTPS 两种协议可选。overwritewebroot 用于指定 Nextcloud 的目录,需使用绝对目录。如果你想让自动检测功能只对其中的一个或几个参数生效,只需将这些参数删除或将它的值留空。overwritecondaddr 参数用于覆盖原本取决于远程客户端的 IP 地址,该项的值应当是一个代理服务器的 IP 地址的正则表达式。当你代理的是一个只允许 HTTPS 的 Nextcloud 实例并且想为 HTTP 请求使用自动检测时,这一项十分有用。

例子

多域名的反向 SSL 代理

如果你想要通过 IP 地址为 10.0.0.1 的反向代理服务器 https://ssl-proxy.tld/domain.tld/nextcloud 通过 HTTPS 请求访问 http://domain.tld/nextcloud,你可以在 config/config.php 中添加如下内容:

[10.0.0.1],
overwritehost     => ssl-proxy.tld,
overwriteprotocol => https,
overwritewebroot  => /domain.tld/nextcloud,
overwritecondaddr => ^10\.0\.0\.1$,

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
zhaozhizheng
没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或者鄙夷 北京