Traefik-未找到对象404

时间:2019-02-04 12:54:16

标签: traefik

我有以下规则:

[backends]
  [backends.pma]
    [backends.pma.servers.server1]
    url = "http://phpmyadmin:80"
  [backends.rabbitmq]
    [backends.rabbitmq.servers.server1]
    url = "http://rabbitmq:15672"

[frontends]
  [frontends.pma]
  backend = "pma"
    [frontends.pma.routes.test_1]
    rule = "Host:pma.example.it"
    passHostHeader = true
  [frontends.rabbitmq]
  backend = "rabbitmq"
    [frontends.rabbitmq.routes.test_1]
    rule = "Host:pma.example.it;Path:/rabbitmq"

主机pma.example.it有效,我看到phpmyadmin,主机pma.example.it/rabbitmq不起作用,我有{"error":"Object Not Found","reason":"Not Found"}

但是,从traefik容器中,如果我键入curl http://rabbitmq:15672,它就可以了。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您是否可以尝试使用bin_l=np.arange(0,14,1) bin_l=np.append(bin_l,max_bin) plt.hist([wind_plot_o, wind_plot_m, wind_plot_b],bins=bin_l, align='mid', label=['label1', 'label2', 'label3'],color=['k','g', 'r']) 代替bin_l作为规则。

请注意,您的配置中有一个小错字:

PathPrefix

答案 1 :(得分:1)

两个示例中的路径不相等。当您转到pma.example.it/rabbitmq时,RabbitMQ实例实际上正在接收rabbitmq:15672/rabbitmq,并返回Object Not Found错误。

您可能希望在前端规则中使用PathPrefixStrip而不是Path。它将在以/rabbitmq开头的路径上匹配,并在将其传递到后端之前将其剥离。

rule = "Host:pma.example.it;PathPrefixStrip:/rabbitmq"

答案 2 :(得分:1)

PathPrefixStrip无法正常工作,因为管理控制台的主页使用剥离的URL加载静态文件,从而导致状态为404的响应。 我有类似的问题,并通过在rabbitmq.conf中设置路径前缀来解决。在您的情况下,将是:

management.path_prefix = /rabbitmq

Traefik的配置保持不变。

另请参阅https://www.rabbitmq.com/management.html#path-prefix

答案 3 :(得分:-2)

后端配置中缺少一行

[backends]
   [backends.pma]
   [backends.pma.servers]      # <----------add this
      [backends.pma.servers.server1]
         url = "http://phpmyadmin:80" 

(与backend.rabbitmq相同)