2017-11-04 2 views
3

나를 미치게하는 문제가 있습니다. 제발 도와주세요. 여기 docker-compose traefik PathPrefixStrip이 올바르게 작동하지 않습니다.

mysubdomain.no-ip.com/emby 
mysubdomain.no-ip.com/pydio 
mysubdomain.no-ip.com/adminer... 

내 고정 표시기입니다 :

나는 한 무료 노의 IP 하위 도메인에서 내 모든 응용 프로그램에 액세스하려면, 그래서 traefik 나를 위해, 내가 그렇게 내 모든 응용 프로그램에 액세스하도록 할 수 있다고 생각 구성 :

version: "2" 
services: 
    db: 
    image: linuxserver/mariadb 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: "test" 
    labels: 
     - "traefik.enable=false" 
    volumes: 
     - ./config/mariadb:/etc/mysql/ 
    ports: 
     - '3306:3306' 
    adminer: 
    image: adminer 
    restart: always 
    labels: 
     - "traefik.enable=true" 
     - "traefik.backend=adminer" 
     - "traefik.frontend.rule=PathPrefixStrip:/dbadmin" 
     - "traefik.backend.port=8080" 
    volumes: 
     - ./config/adminer:/config 
    emby: 
    image: emby/embyserver:latest 
    restart: always 
    labels: 
     - "traefik.enable=true" 
     - "traefik.backend=emby" 
     - "traefik.frontend.rule=PathPrefixStrip:/media" 
     - "traefik.backend.port=8096" 
    volumes: 
     - ./config/emby:/config 
    cloud: 
    image: linuxserver/pydio:latest 
    restart: always 
    environment: 
     PGID: "1000" 
     PUID: "1000" 
    labels: 
     - "traefik.enable=true" 
     - "traefik.backend=cloud" 
     - "traefik.frontend.rule=PathPrefixStrip:/cloud" 
     - "traefik.backend.port=443" 
     - "traefik.protocol=https" 
    volumes: 
     - ./config/cloud:/config 
     - ./data/test:/data 
    organizr: 
     image: lsiocommunity/organizr 
     restart: always 
     environment: 
     PGID: "1000" 
     PUID: "1000" 
     TZ: "Europe/Paris" 
     labels: 
     - "traefik.enable=true" 
     - "traefik.backend=organizr" 
     - "traefik.frontend.rule=PathPrefixStrip:/" 
     - "traefik.backend.port=80" 
     volumes: 
     - ./config/organizr:/config 
     - ./data/organizr:/data 
    traefik: 
    image: traefik:1.3.3 
    command: --web --docker --docker.domain=traefik --logLevel=DEBUG #-c /dev/null --web --docker --logLevel=INFO 
    restart: always 
    ports: 
     - '80:80' 
     - '443:443' 
     - '8080:8080' 
    labels: 
     - "traefik.enable=false" 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
     - ./traefik.toml:/traefik.toml 
     - ./config/traefik/data:/data 
     - ./config/traefik/sslcerts:/ssl 

내 traefik.toml

# defaultEntryPoints must be at the top because it should not be in any table below 
defaultEntryPoints = ["http", "https"] 
InsecureSkipVerify = true 

[web] 
# Port for the status page 
address = ":8080" 

# Entrypoints, http and https 
[entryPoints] 

    # http should be redirected to https 
    [entryPoints.http] 
    address = ":80" 
    [entryPoints.http.redirect] 
    entryPoint = "https" 

    # https is the default 
    [entryPoints.https] 
    address = ":443" 
    [entryPoints.https.tls] 
     [[entryPoints.https.tls.certificates]] 
     CertFile = "/ssl/tls.crt" 
     KeyFile = "/ssl/tls.key" 
[retry] 

# Enable ACME (Let's Encrypt): automatic SSL 
# [acme] 
# # caServer = "https://acme-staging.api.letsencrypt.org/directory" 
# email = "[email protected]" 
# storage = "acme.json" # or "traefik/acme/account" if using KV store 
# entryPoint = "https" 
# onDemand = false 
# OnHostRule = true 

[docker] 
endpoint = "unix:///var/run/docker.sock" 
domain = "localhost" 
watch = true 
exposedbydefault = false 

그래서 나는 마치 마법처럼 단 1 응용 프로그램을 작동 한 자 : emby.

Adminer의 semms이 제대로로드 CSS 및 기타 자산을 작동합니다,하지만 난 양식을 제출하면, 그것은 =/서버 = DB & 이름 localhost에 저를 보내이 /를 dbadmin/서버 = DB & 이름을 localhost로 저를 보내야 테스트 내가 localhost에 액세스 할 때 내가 크롬의 콘솔을 열면 = 시험

은/구름/그것은 나에게 빈 페이지를로드

사실
pydio.material.min.css Failed to load resource: the server responded with a status of 404() pydio.boot.min.js Failed to load resource: the server responded with a status of 404() 
cloud:18 Uncaught ReferenceError: PydioBootstrap is not defined at cloud:18 pydio.material.min.css Failed to load resource: the server responded with a status of 404() 

는 로컬 호스트에서 로컬 호스트/플러그인에서 플러그인을로드하려고하지/cloud/plugins ... github에 관한 많은 문제가 있지만 관련이 있습니다. o 1.3.3 버전에서 수정, 1.3.3, 최신 버전 시도 ...

역방향 프록시를 지원해야합니까?

죄송합니다.

답변

0

traefik에서 PathPrefixStrip 및 진입 점 do not currently work together로 리디렉션됩니다. 따라서 요청이 https 대신 http로 이동하면 오류가 발생합니다.

my own demo에서 위의 문제가 해결 될 때까지 짧은 해결책으로 리디렉션을 보내려면 포트 80에 nginx를 설정하기 만하면됩니다.

+0

내 경우에는 http : //에 액세스 할 때 줄을 ./traefik.toml:/traefik.toml로 바꾸면 /dev/null:/traefik.toml에 의해 동일한 문제가 발생합니다. localhost/dbadmin을 입력 한 다음 traefik 양식을 http : // localhost /? server = db & username = test로 리디렉션하면 prefixPathStrip도 느슨해집니다. – pseudo

+0

양식 리디렉션과 관련된 문제인 것 같습니다. 내가 상대 경로를 통해 리디렉션해야 할 경우 프록시를 통해 작동합니다. 경로 앞에 '/'를 넣으면 PrefixStrip 논리가 손상됩니다. Traefik은 html을 전혀 수정하지 않습니다. – BMitch

+0

답장을 보내 주셔서 감사합니다. 상대 경로를 사용하고 pydio, nextcloud 또는 관리자가 절대적으로 사용합니다. traefik이 현재 경로로 올바른 앱으로 모든 요청을 다시 라우팅 할 수 있다고 생각합니다. – pseudo

관련 문제