Routing 如何使用子路径在Traefik后面运行Matomo?

Routing 如何使用子路径在Traefik后面运行Matomo?,routing,docker-compose,traefik,bitnami,matomo,Routing,Docker Compose,Traefik,Bitnami,Matomo,我正在建立一个docker compose环境,使用Traefik(v1.7.16)作为反向代理,并希望包括Matomo。我将Bitnami图像用于Matomo和备份数据库(MariaDB);两者都是最新版本。设置类似于 我按照提供的说明进行操作,一切正常,除了Traefik的路由。例如,我可以在localhost:上运行Matomo,但不能在localhost/Matomo上运行,因此子路径不起作用 到目前为止,我所做的是:正如在中所解释的,我在config.ini.php中设置env变量MA

我正在建立一个docker compose环境,使用Traefik(v1.7.16)作为反向代理,并希望包括Matomo。我将Bitnami图像用于Matomo和备份数据库(MariaDB);两者都是
最新版本
。设置类似于

我按照提供的说明进行操作,一切正常,除了Traefik的路由。例如,我可以在
localhost:
上运行Matomo,但不能在
localhost/Matomo
上运行,因此子路径不起作用

到目前为止,我所做的是:正如在中所解释的,我在
config.ini.php
中设置env变量
MATOMO\u ENABLE\u PROXY\u URI\u HEADER=yes
以设置
PROXY\u URI\u HEADER=1
(这很有效)。然后,我为Matomo服务设置traefik标签:

labels:
  - 'traefik.backend=matomo'
  - 'traefik.docker.network=proxy_traefik'
  - 'traefik.enable=true'
  - 'traefik.frontend.headers.STSPreload=true'
  - 'traefik.frontend.headers.STSSeconds=31536000'
  - 'traefik.frontend.rule=Host:localhost; PathPrefixStrip:/matomo;'
  - 'traefik.frontend.headers.customRequestHeaders=X-Forwarded-Uri:localhost/matomo'
  - 'traefik.frontend.headers.hostsProxyHeaders=X-Forwarded-Uri'
  - 'traefik.port=80'
因此,我可以加载页面
localhost/matomo
,但所有内部URL(如图像和脚本URL)仅引用
localhost
,不包括路径
/matomo


设置Traefik和Matomo时有什么遗漏吗?

通过查看您的描述和此处的配置片段,我可以看出,您需要的是路径前缀规则,而不是路径前缀trip规则。这样,内部URL应该在localhost/matomo之后添加,因为matomo(您的前缀)在被反向代理到后端之前不会被剥离。

我自己在过去一周左右的时间里一直在努力解决这个问题,最后终于解决了。
与OP一样,我仍然在使用TraefikV1.7,刚刚发现了Matomo,并想将其连接到我为自己设置的gitea容器

我的traefik前端规则标签如下所示:

    labels:
      traefik.frontend.rule: 'HostRegexp: ${DOMAIN_NAME}, {subdomain:[a-z]+}${DOMAIN_NAME}; PathPrefixStrip:/matomo/'
这是一个特例,因为我希望matomo始终位于我使用的任何主机名上,只要我在URL中添加/matomo/

更简单的版本是:

    labels:
      traefik.frontend.rule: 'Host: ${DOMAIN_NAME}; PathPrefixStrip:/matomo/'
您可以在.env文件中定义域名,或者仅替换为
localhost
,以匹配您的示例

对我来说,改变的是最后一个斜杠,没有它,访问matomo将失败