3

Matomo 的 Invalid origin 问题

 2 years ago
source link: https://www.codewoody.com/posts/14636/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Published Jan 09, 2022

Matomo 的 Invalid origin 问题

装 Matomo 的时候遇到了一个蛋疼的问题,具体是这样的。我在 Unraid 上装了一个 Matomo 镜像,然后通过 Unraid 的内网地址访问 http 服务,全程都是正常的。然后我在 Nginx 网关上加了一个入口,增加一个域名指向,并开启了 Https。这时通过网关的地址访问时,Matomo 会无法登录,的人登录错误信息的关键词是 Invalid Origin。我拿 Matomo + Invalid Origin 关键字在 Google 上搜索,发现一个回答这个问题的网页都没有,这就离谱,还是得自己调。

通过望文生义的方式来看 Invalid Origin 应该是暗示我的访问域名有问题。我首先去 Matomo 上将我的外部访问域名加入了 trusted hosts,但是仍然不能是有这个错误。合理的推断,肯定是 Nginx 没有正确地把域名传递给后面 Unraid 中的镜像。然而,我的 Nginx 其实已经设置了转发时候带上了 X-Forwarded-Host

proxy_set_header X-Forwarded-Host $host

于是我找了两个措施一起加上去了。首先是让 Nginx 在转发流量的时候在设置 X-Forwarded-Host 之外,额外再设置一下 Host:

proxy_set_header HOST $host;

然后,我还修改了 Matomo 的配置。Matomo 的配置文件位与你映射到容器内的配置目录下的 matomo/config/config.ini.php 文章中。在 [General] 这个区间下加入

proxy_client_headers[] = HTTP_X_FORWARDED_FOR
proxy_ips[] = 192.168.*.*/16

注意这里 proxy_ips 设置的 nginx 的地址,我将其屏蔽了。你需要替换成你的网关的地址。

在上面两项措施下,Matomo 能够从网关处正确地登录了。事实上上面两个措施未必都是必须的,可能第二个修改配置就可以了。不过 Everything works 之后我也懒得去摸排一下具体哪个措施是必须的,哪个是可选的,就留在这里了。如果你做了这方面的研究,可以在这里留言一下指出。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK