隨着泊塢窗和Traefik做反向代理,我要派遣同一主機上的多條路徑到像這兩個不同的後端服務器,Traefik(+泊塢窗)的根路徑設置和子文件夾派遣
1. traefik.test/ -> app1/
2. traefik.test/post/blabla -> app1/post/blabla
3. traefik.test/user/blabla -> app2/user/blabla
如果規則是唯一#2,#3,我可以在泊塢窗,compose.yml做這樣
app1:
image: akky/app1
labels:
- "traefik.backend=app1"
- "traefik.frontend.rule=Host:traefik.test;PathPrefix:/post,/comment"
app2:
image: akky/app2
labels:
- "traefik.backend=app2"
- "traefik.frontend.rule=Host:traefik.test;PathPrefix:/user,/group"
然而,增加的根「/」進入第一PathPrefix似乎掩飾對APP 2 /用戶。以下不起作用,並且所有內容都轉到app1後端。
- "traefik.frontend.rule=Host:traefik.test;PathPrefix:/,/post,/group"
規則 「主持人:」 和 「PathPrefix」,似乎工作作爲 'AND',但我想用 'OR'(確切的/,或者用/後開始)。我搜索了一下,並且知道可以從版本1.3.0開始指導多個規則,根據pull request #1257,通過添加多行添加服務名稱。
通過了解,我所做的就是這樣的,
app1:
image: akky/app1
labels:
- "traefik.app1_subfolder.backend=app1"
- "traefik.app1_subfolder.frontend.rule=Host:traefik.test;PathPrefix:/post,/group"
- "traefik.app1_rootfolder.backend=app1"
- "traefik.app1_rootfolder.frontend.rule=Host:traefik.test;Path:/"
app2:
image: akky/app2
labels:
- "traefik.backend=app2"
- "traefik.frontend.rule=Host:traefik.test;PathPrefix:/user"
現在,它的工作原理是必需的,完整的權限被分派到APP1 /。
我的問題是,這是正確的方式?它看起來不像我,因爲這個根和子文件夾派遣應該是一個典型的用例。