Skip to content

misyaguziya/traefik-for-fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

traefik for fastapi

traefikを使ってfastapiのBASIC認証がしたかったので作成
例として2つのAPI(fastapi1, fastapi2)でBASIC認証をしたものを提示する

BASIC認証の設定は以下

  • user:test
  • pass:test

実装の説明

fastapi1の設定について詰まった部分を説明

command: uvicorn main:app --reload --host 0.0.0.0 --port 80 --root-path="/api-template1"

commandを使用しなくとも実行できるが、後のPathPrefixの設定で/docsにアクセスできないため--root-path=でpathを指定する必要がある

- "traefik.http.routers.fastapi_temp1.rule=Host(`fastapi.localhost`) && PathPrefix(`/api-template1`)"

複数のAPIがあることを想定してPathPrefix(/api-template1)でAPIのアクセス先をhttp://fastapi.localhost/api-template1に指定

- "traefik.http.middlewares.api_name1.stripprefix.prefixes=/api-template1"

fastapiのアクセス先の先端は@app.get("/")なので/api-template1が不要のためstripprefixで削除

- "traefik.http.middlewares.auth1.basicauth.users=test:$$apr1$$iSA3vEsh$51cGxRXQnt05AvjpuEsaS0"

BASIC認証はhtpasswdコマンドで作成

sudo htpasswd -nb test test

docker-compose.ymlでBASIC認証を登録する場合、htpasswdで作成した暗号の$$$に変更すること

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published