Сочетание переадресации внешнего интерфейса Traefik с помощью PathPrefixStrip

, чтобы получить IMEI (международный идентификатор мобильного оборудования)

public String getIMEI(Activity activity) { TelephonyManager telephonyManager = (TelephonyManager) activity .getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getDeviceId(); }

, чтобы получить IMEI

public String getDeviceUniqueID(Activity activity){ String device_unique_id = Secure.getString(activity.getContentResolver(), Secure.ANDROID_ID); return device_unique_id; }
0
задан Florian 13 July 2018 в 20:19
поделиться

2 ответа

Проблема, с которой вы столкнулись, связана с перекрывающимися правилами.

Запрос www.mysite.nl/adminer

Соответствует обоим: traefik.frontend.rule=Host:mysite.nl, www.mysite.nl, cdn.mysite.net и traefik.frontend.rule=Host:www.mysite.nl;PathPrefixStrip:/adminer

Поэтому Traefik не знает, на какие запросы направлять.

Используйте метку traefik.frontend.priority, чтобы установить порядок соответствия (из https://docs.traefik.io/configuration/backends/ докер / # на контейнерах [/ д0])

2
ответ дан Daniel Tomcej 17 August 2018 в 12:22
поделиться
  • 1
    Это имеет смысл! Я попробовал - 'traefik.frontend.priority=9' и 20 в контейнере администратора. после восстановления я все еще попадаю в контейнер wordpress. Посмотрев на приборную панель Traefik, я вижу, что приоритет идет. Приоритет администратора должен быть выше? Что мне не хватает. – Florian 13 July 2018 в 18:52
  • 2
    Да. Более высокий приоритет = сначала согласован. Если вы установите traefik.enabled=false в контейнере wordpress, можете ли вы получить доступ к админе правильно? – Daniel Tomcej 13 July 2018 в 19:04
  • 3
    Просто попробовал. Когда контейнер Wordpress отключен, как вы сказали, я могу добраться до контейнера Adminer на www.mysite.com/adminer – Florian 13 July 2018 в 19:22
  • 4
    Я просто добавил - «traefik.frontend.priority = 20» к экземпляру администратора и - «traefik.frontend.priority = 5» к экземпляру Wordpress, и он сработал! Это ожидаемое поведение? Я думал, что приоритет по умолчанию равен 10 – Florian 13 July 2018 в 19:39

С помощью Дэниела Томчея я пришел к следующему рабочему docker-compose.yml. Вы должны установить приоритет в обоих контейнерах.

version: '3'
services:
  wordpress:
    image: wordpress:latest 
    restart: $RESTART
    container_name: ${COMPOSE_PROJECT_NAME}_wp
    depends_on:
      - mysql
    networks:
      - web
    labels:
      - 'traefik.backend=$COMPOSE_PROJECT_NAME'
      - 'traefik.entrypoint=https'
      - 'traefik.enable=true'
      - 'traefik.frontend.rule=Host:mysite.nl, www.mysite.nl, cdn.mysite.net'
      - 'traefik.frontend.redirect.regex=^https?://mysite.nl/(.*)'
      - 'traefik.frontend.redirect.replacement=https://www.mysite.nl/$${1}'
      - 'traefik.frontend.priority=5'
  mysql:
    image: mysql:latest
    restart: $RESTART
    container_name: ${COMPOSE_PROJECT_NAME}_db
    networks:
      - web
  adminer:
    image: adminer:4.6.2
    restart: $RESTART
    container_name: ${COMPOSE_PROJECT_NAME}
    depends_on:
      - mysql
    networks:
      - web
    labels:
      - 'traefik.backend=${COMPOSE_PROJECT_NAME}_adminer'
      - 'traefik.entrypoint=https'
      - 'traefik.enable=true'
      - 'traefik.frontend.rule=Host:www.mysite.nl;PathPrefixStrip:/adminer'
      - 'traefik.frontend.priority=20'

networks:
  web:
    external:
      name: traefik_${COMPOSE_PROJECT_NAME}_web
1
ответ дан Florian 17 August 2018 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: