RedisInsight using Traefik does not work with PathPrefix

137 views Asked by At

Thanks in advance.

Here is my docker-compose.yml

redis:
    image: redis/redis-stack
    environment:
      ALLOW_EMPTY_PASSWORD: yes
    volumes:
      - redis:/data
    expose:
      - 6379
    ports:
      - 8001:8001
    labels:
      traefik.enable: true
      traefik.http.routers.redis-ui-http.rule: Host(`${HOST}`) && PathPrefix(`/redisui`)
      traefik.http.routers.redis-ui-http.entrypoints: web
      traefik.http.routers.redis-ui-http.service: redis-ui-http
      traefik.http.services.redis-ui-http.loadbalancer.server.port: 8001
      traefik.http.routers.redis-ui-http.middlewares: redis-ui-http-redirectscheme
      traefik.http.middlewares.redis-ui-http-redirectscheme.redirectscheme.scheme: https
      traefik.http.routers.redis-ui-https.rule: Host(`${HOST}`) && PathPrefix(`/redisui`)
      traefik.http.routers.redis-ui-https.entrypoints: websecure
      traefik.http.routers.redis-ui-https.service: redis-ui-https
      traefik.http.services.redis-ui-https.loadbalancer.server.port: 8001
      traefik.http.routers.redis-ui-https.middlewares: redis-ui-https-stripprefix
      traefik.http.middlewares.redis-ui-https-stripprefix.stripprefix.forceSlash: false
      traefik.http.middlewares.redis-ui-https-stripprefix.stripprefix.prefixes: /redisui
      traefik.http.routers.redis-ui-https.tls: true
    networks:
      - proxy

However when I open browser and navigate to https://xxxxxx/redisui it just gives me a blank screen. It is not 404 so I believe Traefik get my request.

Below is my Traefik access log.

192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /redisui HTTP/2.0" 304 0 "-" "-" 1310 "redis-ui-https@docker" "http://172.18.0.6:8001" 2ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /js/bundle.runtime.min.js HTTP/2.0" 404 19 "-" "-" 1311 "-" "-" 0ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /js/bundle.elasticVendor.min.js HTTP/2.0" 404 19 "-" "-" 1312 "-" "-" 0ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /js/bundle.monacoVendor.min.js HTTP/2.0" 404 19 "-" "-" 1313 "-" "-" 0ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /js/bundle.utilityVendor.min.js HTTP/2.0" 404 19 "-" "-" 1314 "-" "-" 0ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /js/bundle.reactVendor.min.js HTTP/2.0" 404 19 "-" "-" 1315 "-" "-" 0ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /js/bundle.main.min.js HTTP/2.0" 404 19 "-" "-" 1316 "-" "-" 0ms
192.168.65.1 - - [28/Sep/2023:20:16:31 +0000] "GET /main.1a27b43f14a135120049.css HTTP/2.0" 404 19 "-" "-" 1317 "-" "-" 0ms

I tried the following setup which set rule to host only without prefix, like

  redis:
    image: redis/redis-stack
    environment:
      ALLOW_EMPTY_PASSWORD: yes
    volumes:
      - redis:/data
    expose:
      - 6379
    ports:
      - 8001:8001
    labels:
      traefik.enable: true
      traefik.http.routers.redis-ui-http.rule: Host(`${HOST}`)
      traefik.http.routers.redis-ui-http.entrypoints: web
      traefik.http.routers.redis-ui-http.service: redis-ui-http
      traefik.http.services.redis-ui-http.loadbalancer.server.port: 8001
      traefik.http.routers.redis-ui-http.middlewares: redis-ui-http-redirectscheme
      traefik.http.middlewares.redis-ui-http-redirectscheme.redirectscheme.scheme: https
      traefik.http.routers.redis-ui-https.rule: Host(`${HOST}`)
      traefik.http.routers.redis-ui-https.entrypoints: websecure
      traefik.http.routers.redis-ui-https.service: redis-ui-https
      traefik.http.services.redis-ui-https.loadbalancer.server.port: 8001
      traefik.http.routers.redis-ui-https.tls: true
    networks:
      - proxy

And I was able to access RedisInsight in my browser.

0

There are 0 answers