【问题标题】:Configuration for Piwik behind nginx reverse proxy with rewrite在 nginx 反向代理后面配置 Piwik 并重写
【发布时间】:2017-09-07 23:44:31
【问题描述】:

我在 Nginx 反向代理后面使用 Piwik,并且 Piwik 在 Apache 服务器上运行。我还使用了重写规则( /piwik/ 到 / )。

对于 Mac 上的 Chrome 和 Safari,Piwik 的登录过程不起作用(我只收到配置浏览器 cookie 和代理服务器的一般错误消息)。

但我当前的配置在 Mac 的 FirefoxDeveloperEdition 中运行:

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;

登录正常,但我遇到了另外 2 个问题:

  • 登录后我错误地重定向到根目录/(不再是 Piwik),但重新打开 Piwik 后,我已登录
  • 由于错误的 URL http://localhost:2020/plugins/Morpheus/images/logo.svg 而不是 http://localhost:2020/piwik/plugins/Morpheus/images/logo.svg 导致徽标丢失

我也会保留重写规则,因为 Apache 服务器是一个通用的 docker 容器。

可能我必须分析认证失败的情况,但我还没有找到正确的行。

【问题讨论】:

    标签: authentication url-rewriting matomo nginx-reverse-proxy


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 2017-08-14
      • 2012-12-11
      • 1970-01-01
      • 2014-02-01
      • 2020-09-05
      相关资源
      最近更新 更多