Docker pomáhá webovým vývojářům dostat jejich aplikace online bez chyb.
I když je používání Dockeru pro vývoj intuitivní a snadné, používání Dockeru na produkčních serverech je plné problémů.
Zde na Bobcares.com pomáháme webovým vývojářům a digitálním obchodníkům nastavit a udržovat webhostingové servery založené na Dockeru.
A společný problém, který řešíme, je: „Jak používat jeden server k provozování několika stovek webů běžících na kontejnerech Docker.“
Weby naslouchají na portu 80, aby mohly přijímat požadavky a obsluhovat stránky.
Takže každý webový kontejner Docker má otevřený port 80.
Hostitel Dockeru má však pouze jeden port 80 a může přijímat požadavky pouze pro jeden z těchto kontejnerů.
Docker lze nakonfigurovat tak, aby svázal každý kontejner se samostatnými porty serveru. Pro např. svázat port 80 Docker 1 s portem 8080 serveru, Docker 2 s 8081 atd.
Protože se prohlížeče ve výchozím nastavení připojují k portu 80 a nikoli 8080 nebo 8081, tyto stránky nebudou viditelné.
Reverzní proxy je program, který přijímá připojení na portu 80 a odesílá je na jeden nebo více serverů v back-endu.
Pokud tedy dokážeme nastavit reverzní proxy pro naslouchání na 80 a přimět jej k rozdělení provozu na základě názvů domén, můžeme hostovat více domén pouze s jedním portem 80.
Existuje mnoho reverzních proxy, jako jsou HAProxy, Nginx a Varnish.
Pro většinu webhostingových účelů založených na Dockeru jsme zjistili, že kontejnery Nginx jsou vhodné.
Nastavení brány Nginx má 3 části:
Spusťte kontejner NginxUmožněte upravovat konfigurační soubory Nginx prostřednictvím svazkuNakonfigurujte Nginx pro připojení k interní IP webu1. Svažte port 80 a 443 hostitele Dockeru s kontejnerem NignxAby Nginx fungoval jako brána, musí mít kontrolu nad porty HTTP a HTTPS hostitelského serveru Docker.
Chcete-li jej nastavit, nastavte soubor docker compose s direktivou „ports“ takto:
http-gateway:container_name: http-rev-proximage: jwilder/nginx-proxyports:- '80:80'- '443:443'
V závislosti na potřebách vašich webových stránek a vzorcích návštěvnosti budete možná potřebovat další nastavení, jako je „CLIENT_MAX_BODY_SIZE“ a „PROXY_READ_TIMEOUT“ nastavené v direktivě „environment“.
2. Umožněte upravovat konfigurační soubor Nginx mimo kontejner
Někteří naši zákazníci mají servery Docker, které obsahují stovky webů.
Na těchto serverech poměrně pravidelně přidáváme, upravujeme a odstraňujeme webové stránky.
Za tímto účelem je důležité mít možnost upravovat konfigurační soubor Nginx, aniž byste museli znovu vytvářet obraz Nginx.
Používáme k tomu Docker Volumes, kde je konfigurační složka Nginx „/etc/nginx/conf.d/“ připojena k externímu adresáři, jako je „/usr/docker/nginx/conf.d“.
Nastavení skladatele Dockeru vypadá takto:
svazky:- /usr/docker/nginx/conf.d:/etc/nginx/conf.d/:rw
Upozorňujeme, že toto je pouze část velkého souboru pro psaní. Pro plně funkční bránu budete muset přidat další nastavení, jako je adresář SSL, umístění soketu Docker atd.
Kliknutím sem získáte odbornou pomoc s Dockerem.
3. Nakonfigurujte Nginx tak, aby připojoval požadavky k webu k privátní IP kontejneru webu
Nyní, když máme konfigurační soubory Nginx v upravitelném umístění, vytvořte konfigurační soubory pro každý web s direktivou „proxy_pass“, která propojí soukromou IP webu do Nginx.
Např. konfigurační soubor domény (řekněme mydomain.com) může vypadat nějak takto:
umístění / {proxy_pass http://10.1.2.3:80;proxy_set_header Host $host;}
V tomto okamžiku Nginx naslouchá portu 80 a předává všechny požadavky přicházející na mydomain.com na svou interní IP 10.1.2.3.
Kroky, které jsme zde zmínili, jsou pouze nástinem, které se dotýká hlavních faktorů, aby to fungovalo.
Jemné detaily jsou vynechány, aby objekt zůstal zaostřený.
Ve skutečném produkčním prostředí však může nastat stovka malých problémů, které mohou ovlivnit kvalitu hostingu.
Může sahat od nastavení limitů zdrojů & SSL na chyby, jako jsou úniky konfigurace & záměna protokolů.
Pokud se to tedy pokoušíte nastavit od začátku, doporučujeme vám promluvit si s odborníkem na Docker, aby nastavení přesně odpovídalo vašim požadavkům.
Naši odborníci na Docker jsou online 24/7 a mohou vám pomoci během několika minut. Kliknutím sem otevřete žádost o podporu.
Docker umožňuje pouze vazbu portu 1:1, což zabraňuje více kontejnerům Docker používat stejný port hlavního serveru (hostitel Docker). Zde jsme diskutovali o tom, jak používat reverzní proxy k přesměrování požadavků do mnoha domén prostřednictvím jednoho portu HTTP v hostiteli Docker.
Už nikdy nepřijdete o zákazníky kvůli nízké rychlosti serveru! Dovolte nám, abychom vám pomohli.
Naši odborníci na servery budou monitorovat & udržujte svůj server 24/7, aby zůstal bleskově rychlý a bezpečný.
ZOBRAZIT PLÁNY SPRÁVY SERVERU
var google_conversion_label = "owonCMyG5nEQ0aD71QM";