如何在代理环境中配置MATOMO(访客IP不正确,访客IP全部变成了代理IP)

此常见问题将带你了解如何在代理环境下配置matomo服务器。

Matomo安装在反向代理之后

如果你在安装Matomo(Piwik)时,是通过反向代理的网址(如NGINX,LB)进行安装的(https-to-http),下面这一行会自动添加到config/config.ini.php中。

[General]
assume_secure_protocol = 1

如果上面这一行没有自动添加,请手工添加。

反向代理服务器的类型不同,访客IP会被设置到不同的HTTP消息头中,系统在安装时默认支持以下几种消息头,默认情况下是注释掉的,你可以根据反向代理不同,选择启用某一行(去掉首字符分号)。

欢迎加入Matomo中文网官方QQ群255820112(点击滚动至本页末可扫描二维码),随时提问,有问必答。

[General]
; Uncomment line below if you use a standard proxy
;proxy_client_headers[] = HTTP_X_FORWARDED_FOR
;proxy_host_headers[] = HTTP_X_FORWARDED_HOST

; Uncomment line below if you use CloudFlare
;proxy_client_headers[] = HTTP_CF_CONNECTING_IP

; Uncomment line below if you use another proxy (that sets Client-IP header)
;proxy_client_headers[] = HTTP_CLIENT_IP

如果以上消息头都不是你的反向代理设置的消息头(可以通过抓包分析获取),你可以手工添加一行

proxy_client_headers[] = 你的消息头的名称或者叫KEY

备注:在Apache 2.4和2.5版本,你可以使用mod_remoteip来实现,这样你无需对matomo进行设置了

Matomo安装在代理服务器之后且安装在域名子目录下

如果你将matomo安装在反向代理之后,并且重定向到不同路径的话,如

 rewrite ^/piwik/(.*)$ /$1 break;

以上为nginx配置,你需要

  • 配置你的web服务器以提供HTTP_X_FORWARDED_URI消息头,以nginx为例,当matomo安装在/piwik路径下,你需要将

set proxy_set_header X-Forwarded-Uri /piwik;

添加到nginx.conf中

  • 配置Matomo读取HTTP_X_FORWARDED_URI消息头,以构造正确的网址,配置如下

 [General]

 ; Use the header HTTP_X_FORWARDED_URI to construct the current script name

 proxy_uri_header = 1

Matomo通过代理访问公网

当Matomo无法获取版本更新信息或SEO插件无法工作时,你可能需要为matomo配置访问公网用的代理服务器。

[proxy]

host =      ; 代理服务器地址(必填)

port =      ; 代理服务器端口

username =      ; 代理服务器授权用户名(指定后,密码必填)

password =      ; 代理服务器授权密码

一旦配置,matomo会使用此代理访问外部公网。

发表评论