概要

TraefikでHTTPS化した複数コンテナを運用する方法に関する備忘録です。

https://github.com/traefik/traefik

背景

これまで、jwilder/nginx-proxyjrcs/letsencrypt-nginx-proxy-companionを使い、以下のような構成で運用していました。

プロキシ

v#sneeoerprnllchvdtdsrvgeuethhweioiiicplrticd---mrmopofeoxcnmoooaesmoeoetlsaraxnyexanr--l---b-seanp"lcvhss:trkutn:s-gttuetngtenuehtv:::aslea:peas""mhdvc/l"aceangmromam:trm'r:i:84ethhesscrr:idietslr::ne3on04smporar:otynsnsst:a:'xje:3:lastrm:pje_x:::rlywr8::rts//.trro-/uu:c:i_04/a::rdga:c_npeesnoln"4um//uoilsn:rttrmda3s:eenctw/aoccdmem"rtt/khalmx/sooreeccdeuyeeynnhcn/:st//orbst:"ggak_nhcnnc/.siirelgna/ggknjennneriigrniiegrngxx.nniegnnricci/nskxn/ixx.nsrncvgo-xnn/sx.yxehicp-gxco-lp-ronkrpi/hecpetptsx:orndorkrt-rst/xoxhst:sno:.hvyx/ptsxegxrdtayha.:tyniywmrtrdrm-cn-l/maopwrxlrlm/iy-eudtpptnohtrs/c-_o-dkenxeoengyncrci-ck.rncresyxoyrop_mp.ctpptsk/rao:loncroxikogyo::_nr/covoamrp/alnoigo/nn.gnignixnx_proxy"

コンテナ

以下は、Djangoの例です。

vsneeerrndtdsvgnweiiiipdesbctwofeocnmooen:uootoraxnexar-lp-vVLLicdl-nyrkutn:s:gtueiIEEloout:kslea:es"mndrRTTdncm"ai:trm"::1ednoTSS:tke.itn:ne38sd.ssnUEEees.nrga:"n0:eh_mANNxr:/eu_lg0ftoeLCCtfwred:ci1apnn_RR:ie_ion:ua:tHYYlbn#rmx8ls:OPPe:a:m:0tsSTT:/mol".wT__me"nacd:HEy:/_to:OM/smlen/dSAdidyisfejTIotnsnt:ta:Lcesik/cn:k"te/gdeetnojxr"cg.ax//iynxDnnygogxyoci/..kn.zyexhzyr/tzyfcp.ioazlnszetfszr.w#udde/Ddoecfkaeurlfti.lceonf

Basic認証をかけるにあたり、djangoに加えて、nginx:latestも使用していました。

!

以下のライブラリを使うほうがより簡単だったかもしれません。

https://pypi.org/project/wsgi-basic-auth/

Traefikの利用

Traefikでは、以下のような構成に変わりました。

プロキシ

sneertttvrwriaicrpneloaecemoeoenaorexefansr--t-vTbttttttlkftsigtttwiZerrrrrrusie:keaas48otr:laaaaaam:kr::ir:40rroseeeeeeev/-nnt3:kanA:ffffffsaltnate::8semsiiiiii:rerelrr40:feikkkkkk/tat:a_a4ina......rsewenl3kt/ehhhhhuefotfaw-:Tntttttnnirrimanoattttt/ckkukeyekbpppppdr.:e::styl.....oyylwoerrrrmcpmato:ooooiktltrruuuude::eaktttttdr/sereeeel.letfurrrresetiesssswotck....acs/ddddrketaaaae:nrsssss/cahhhh.vrebbbbaayfoooourpiaaaat/tkrrrrhr/dddd.ut....bnrretma/aunlisdeltsdiofer.dcci:yclakkpeeue.Horwtryoitah.msnrr.sltteeuo:(sssscr`:o:ekoplr:rwvasroeeu:oxbrtys:hx.exycmxyuyxyrrx.eexzsxzoxzlx`v)er
leapconpreg#twwidodrm:ree:avotylybahbasiceiraeP:dtsdhdkxfecvodtredbeepismesc#heirpecrorrocoemtatlne:deueas:sal:aoScte:tsinrsr:etvireapnssrttspesddeelarSCtD::eroce:::Bsr:gvehrEcy:hryR:eerayB:tPem:tDea:rvlPU8iowma4resa:eloG0oiean4ufoa/reinnb:e3eal@ah:nnstsnuvbctgt::ehtlebmthe:ct:trbept:ut:s.stwrpt:j:peesrfssbua/:elna/sc/emaec-mve0-2s.taapgii.nlge-tvs0e2n.carpyip.tl.eotrsge/ndcirryepctt.oorryg/directory

コンテナ

Traefikのミドルウェアを使って、Basic認証を実現するようにしました。

sneerdttvnwrisbpctwnrloaec:uoootoeearexeicdl-r-nyrt-sbttttttkftslooutt:kwterrrrrrsie:dncm"s"aiotalaaaaaa:kr:tke.:1itnrrrseeeeee-nees.8nrgkat:ffffffnaxr:/0eu_se:iiiiiieltfw0red:fkkkkkkt::ie1_iia......wlb:n#rklehhhhhote:8a:-wntttttrr:/0mnaatttttkum0e"eybppppp:ey0:/tsl...../s"mwerrrrmdidyo:ooooiotnsruuuudcesiktttttdk"treeeeleeurrrrer"essssw/....aDddddronnnnecsssssk.....eretmdrunlinfltsdsier.d.l:yclbetpeearHorws#uoitaiesnrrcDtteeao(sssuc`:o:tkdlhejwvd.raeenufnbrssigs:eloere.cmsyuy:yrryeex.sxzoxzlxzvx`ex)rxxx

この設定をコンテナごとに作成することで、複数のコンテナを同様の環境で運用することができます。

まとめ

間違った理解、および考慮が足りない点もあるかもしれませんが、HTTPS化(+Basic認証)したコンテナを複数運用する方法として、参考になりましたら幸いです。