我在Nginx反向代理后面使用Piwik,Piwik在Apache服务器上运行。我还使用重写规则(/ piwik / to /)。
对于Mac上的Chrome和Safari,Piwik的登录过程无效(我只收到配置浏览器Cookie和代理服务器的常规错误消息)。
但我当前的配置在Firefox的DevDeperperEdition中使用:
nginx.conf:
location /piwik {
rewrite ^/piwik/(.*)$ /$1 break;
proxy_pass http://piwik;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host/piwik;
}
config.ini.php
[General]
proxy_client_headers[] = HTTP_X_FORWARDED_FOR
proxy_host_headers[] = HTTP_X_FORWARDED_HOST
当我将nginx.conf中的/piwik
删除为:
proxy_set_header X-Forwarded-Host $http_host;
登录正在运行,但我遇到了另外两个问题:
/
(不再是Piwik),但重新打开Piwik后,我已登录http://localhost:2020/plugins/Morpheus/images/logo.svg
而非http://localhost:2020/piwik/plugins/Morpheus/images/logo.svg
,我还会保留重写规则,因为Apache Server是一个通用的docker容器。
可能我必须分析失败的身份验证条件,但我还没找到正确的行。
答案 0 :(得分:1)
我创建了一个拉取请求,以启用并考虑代理环境的新标头信息。
nginx.conf(告知缺少路径)
rewrite ^/piwik/(.*)$ /$1 break;
...
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri /piwik;
在config.ini.php中启用标头
proxy_uri_header = 1
此选项将缺少的路径插入当前脚本名称并重定向。有关详细信息,请参阅请求请求https://github.com/piwik/piwik/pull/12011