Ubuntu 20.04

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در اوبونتو 20.04

Docker  می تواند روشی کارآمد برای اجرای برنامه های وب در حال تولید باشد ، اما ممکن است بخواهید چندین برنامه را در یک هاست  Docker اجرا کنید. در این شرایط ، باید پروکسی معکوس تنظیم کنید زیرا فقط می خواهید پورت 80 و 443 را در معرض دید قرار دهید.

Traefik  یک پروکسی معکوس آگاه از Docker است که شامل داشبورد نظارت خود میباشد. در این آموزش ، از Traefik برای مسیر یابی درخواست ها به دو کانتینر مختلف برنامه وب استفاده می کنید: یک کانتینر وردپرس و یک کانتینر Adminer که هر کدام با یک پایگاه داده MySQL در ارتباط هستند. با استفاده از Let’s Encrypt ، Traefik را پیکربندی می کنید تا همه چیز را از طریق HTTPS  ارائه دهد.

پیش نیازها

برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:

  • یک سرورمجازی اوبونتو 20.04 با پیروی از راهنمای ستاپ اولیه سرورمجازی اوبونتو 20.04 ، از جمله کاربر غیر ریشه sudo و فایروال ، راه اندازی شده.
  • Docker روی سرورمجازی شما نصب شده باشد ، که می توانید با دنبال کردن نحوه نصب و استفاده از Docker در Ubuntu 20.04 این کار را انجام دهید.
  • Docker Compose با دستورالعمل نحوه نصب Docker Compose در اوبونتو 20.04 نصب شده باشد.
  • یک دامنه و سه رکورد A ، db-admin.your_domain ، your_domain و monitor.your_domain. هر کدام باید به آدرس IP سرورمجازی شما اشاره کنند. در طول این آموزش ، دامنه خود را به جای your_domain در فایلهای پیکربندی و مثالها جایگزین کنید.

مرحله 1 – پیکربندی و اجرای  Traefik

پروژه Traefik دارای یک تصویر Docker رسمی است ، بنابراین ما برای اجرای Traefik در یک کانتینر Docker از آن استفاده خواهیم کرد.

اما قبل از راه اندازی کانتینر Traefik ، باید یک فایل پیکربندی ایجاد کرده و یک پسورد رمزگذاری شده تنظیم کنیم تا بتوانیم به داشبورد نظارت دسترسی پیدا کنیم.

برای ایجاد این گذرواژه رمزگذاری شده از ابزار htpasswd استفاده خواهیم کرد. ابتدا برنامه کمکی را نصب کنید که در بسته apache2-utils  وجود دارد:

·         $ sudo apt-get install apache2-utils·

 

سپس رمز عبور را با htpasswd تولید کنید. secure_password را با رمز عبوری که می خواهید برای کاربر مدیر Traefik استفاده کنید جایگزین کنید:

·         $ htpasswd -nb admin secure_password·

خروجی برنامه به صورت زیر خواهد بود:

Output

admin:$apr1$ruca84Hq$mbjdMZBAG.KWn7vfN/SNK/

 

برای تنظیم احراز هویت پایه HTTP برای داشبورد بررسی و نظارت بر سلامت Traefik ، از خروجی منحصر به فرد خود در فایل پیکربندی Traefik استفاده خواهید کرد. تمام خط خروجی خود را کپی کنید تا بعداً بتوانید آن را جایگذاری کنید. از خروجی مثال استفاده نکنید.

برای پیکربندی سرورمجازی Traefik ، با استفاده از قالب TOML ، یک فایل پیکربندی جدید به نام traefik.toml ایجاد خواهیم کرد. TOML یک زبان پیکربندی شبیه به فایل های INI اما استاندارد است. این فایل به ما اجازه می دهد تا سرورمجازی Traefik و ادغام های مختلف یا providers را که می خواهیم استفاده کنیم پیکربندی کنیم. در این آموزش ، ما از سه ارائه دهنده موجود Traefik استفاده خواهیم کرد: api ، docker  و acme. آخرین مورد ، acme  با استفاده از Let’s Encrypt از گواهینامه های TLS پشتیبانی می کند.

فایل جدید خود را در nano یا ویرایشگر متن مورد علاقه خود باز کنید:

·         $ nano traefik.toml·

ابتدا دو نقطه ورودی به نام http و https اضافه کنید که به طور پیش فرض همه backends به آنها دسترسی خواهند داشت:

traefik.toml

defaultEntryPoints = [“http”, “https”]

 

بعداً در این فایل نقاط ورودی http و https را پیکربندی خواهیم کرد.

در مرحله بعد ، ارائه دهنده api را پیکربندی کنید ، که به شما امکان دسترسی به رابط داشبورد را می دهد. اینجاست که می توانید خروجی را از دستور htpasswd پیست کنید:

traefik.toml

[entryPoints]

[entryPoints.dashboard]

address = “:8080”

[entryPoints.dashboard.auth]

[entryPoints.dashboard.auth.basic]

users = [“admin:your_encrypted_password”]

 

[api]

entrypoint=”dashboard”

 

داشبورد یک برنامه وب جداگانه است که در کانتینر Traefik اجرا می شود. ما داشبورد را تنظیم می کنیم تا روی پورت 8080 کار کند.

بخش entrypoints.dashboard نحوه ارتباط ما با ارائه دهنده api را تنظیم می کند و بخش entrypoints.dashboard.auth.basic  تأیید اعتبار اصلی HTTP را برای داشبورد پیکربندی می کند. برای مقدار ورودی کاربران از خروجی دستور htpasswd استفاده کنید. می توانید ورودهای اضافی را با جدا کردن آنها با ویرگول مشخص کنید.

ما اولین ورودی خود را تعریف کرده ایم ، اما باید سایر موارد را برای ارتباطات استاندارد HTTP و HTTPS که به سمت ارائه دهنده api  نیست ، تعریف کنیم. بخش entryPoints آدرس هایی را که Traefik و کانتینرهای پروکسی می توانند به آن گوش دهند پیکربندی می کند. این خطوط را به فایل زیر عنوان entryPoints اضافه کنید:

traefik.toml

[entryPoints.http]

address = “:80”

[entryPoints.http.redirect]

entryPoint = “https”

[entryPoints.https]

address = “:443”

[entryPoints.https.tls]

 

نقطه ورود http پورت 80 را کنترل می کند ، در حالی که نقطه ورود https از پورت 443 برای TLS / SSL استفاده می کند. ما به طور خودکار تمام ترافیک موجود در پورت 80 را به نقطه ورود https هدایت می کنیم تا اتصالات ایمن را برای همه درخواست ها تضمین کنیم.

در مرحله بعد ، این بخش را برای پیکربندی Let’s Encrypt پشتیبانی از گواهی Traefik اضافه کنید:

traefik.toml

[acme]

email = “your_email@your_domain”

storage = “acme.json”

entryPoint = “https”

onHostRule = true

[acme.httpChallenge]

entryPoint = “http”

 

این بخش acme نامیده می شود زیرا ACME نام پروتكلی است كه برای ارتباط با Let’s Encrypt برای مدیریت گواهینامه ها استفاده می شود. سرویس Let’s Encrypt نیاز به ثبت نام با یک آدرس ایمیل معتبر دارد ، بنابراین برای اینکه Traefik برای هاست های ما گواهی تولید کند ، کلید ایمیل را روی آدرس ایمیل خود تنظیم کنید. سپس مشخص می کنیم که اطلاعاتی که از Let’s Encrypt دریافت خواهیم کرد را در یک فایل JSON به نام acme.json ذخیره خواهیم کرد. کلید entryPoint باید به نقطه ورودی پورت 443 اشاره کند ، که در مورد ما نقطه ورود https است.

کلید onHostRule نحوه عملکرد Traefik برای تولید گواهینامه ها را تعیین می کند. ما می خواهیم گواهینامه خود را به محض ایجاد کانتینرها با نام هاست های مشخص دریافت کنیم ، و این همان کاری است که تنظیم onHostRule انجام می دهد.

بخش acme.httpChallenge به ما اجازه می دهد تا تعیین کنیم چگونه Let’s Encrypt بتواند تأیید کند که گواهی تولید شده است. ما در حال پیکربندی آن هستیم تا به عنوان بخشی از چالش از طریق نقطه ورود http ، یک فایل را ارائه دهد.

در آخر ، بیایید با اضافه کردن این خطوط به فایل ، ارائه دهنده docker را پیکربندی کنیم:

traefik.toml

[docker]

domain = “your_domain”

watch = true

network = “web”

 

ارائه دهنده docker ، Traefik  را قادر می سازد به عنوان یک پروکسی در مقابل کانتینرهای Docker عمل کند. ما ارائه دهنده را پیکربندی کرده ایم تا کانتینرهای جدیدی را در شبکه وب مشاهده کند که به زودی ایجاد خواهیم کرد و آنها را به عنوان زیر دامنه های your_domain نمایش می دهد.

در این مرحله ، traefik.toml  باید دارای محتوای زیر باشد:

traefik.toml

defaultEntryPoints = [“http”, “https”]

 

[entryPoints]

[entryPoints.dashboard]

address = “:8080”

[entryPoints.dashboard.auth]

[entryPoints.dashboard.auth.basic]

users = [“admin:your_encrypted_password”]

[entryPoints.http]

address = “:80”

[entryPoints.http.redirect]

entryPoint = “https”

[entryPoints.https]

address = “:443″

[entryPoints.https.tls]

 

[api]

entrypoint=”dashboard”

 

[acme]

email = “your_email@your_domain”

storage = “acme.json”

entryPoint = “https”

onHostRule = true

[acme.httpChallenge]

entryPoint = “http”

 

[docker]

domain = “your_domain”

watch = true

network = “web”

Copy

 

فایل را ذخیره کرده و از ویرایشگر خارج شوید. با استفاده از این پیکربندی ها ، می توانیم Traefik را مقداردهی اولیه کنیم.

مرحله 2 – اجرای  کانتینر  Traefik

سپس ، یک شبکه Docker برای پروکسی ایجاد کنید تا با کانتینرها به اشتراک گذاشته شود. شبکه Docker لازم است تا بتوانیم از آن در برنامه هایی که با استفاده از Docker Compose اجرا می شوند استفاده کنیم. بیایید با این شبکه وب تماس بگیریم:

  • $ docker network create web

وقتی کانتینر Traefik شروع به کار کرد ، ما آن را به این شبکه اضافه خواهیم کرد. سپس می توانیم کانتینرهای دیگری را برای پروکسی Trafik به این شبکه اضافه کنیم.

سپس ، یک فایل خالی ایجاد کنید که اطلاعات Let’s Encrypt ما را در خود نگه دارد. ما این را در کانتینر به اشتراک خواهیم گذاشت تا Traefik بتواند از آن استفاده کند:

  • $ touch acme.json

Traefik  فقط درصورتی امکان استفاده از این فایل را خواهد داشت که کاربر ریشه داخل کانتینر دسترسی خواندن و نوشتن منحصر به فرد به آن داشته باشد. برای انجام این کار ، مجوزهای acme.json را قفل کنید تا فقط صاحب فایل اجازه خواندن و نوشتن را داشته باشد:

  • $ chmod 600 acme.json

هنگامی که فایل به Docker منتقل شد ، مالک به طور خودکار به کاربر اصلی داخل کانتینر تغییر می کند.

در آخر ، با استفاده از این دستور کانتینر Traefik را ایجاد کنید:

  • docker run -d \
  • -v /var/run/docker.sock:/var/run/docker.sock \
  • -v $PWD/traefik.toml:/traefik.toml \
  • -v $PWD/acme.json:/acme.json \
  • -p 80:80 \
  • -p 443:443 \
  • -l traefik.frontend.rule=Host:monitor.your_domain \
  • -l traefik.port=8080 \
  • –network web \
  • –name traefik \
  • traefik:1.7-alpine

 

دستور کمی طولانی است ، بنابراین اجازه دهید آن را تجزیه کنیم.

ما از پرچم -d برای اجرای کانتینر در پس زمینه به عنوان یک دمون استفاده می کنیم. سپس فایل docker.sock خود را در کانتینر به اشتراک می گذاریم تا روند Traefik بتواند تغییرات در کانتینرها را گوش دهد. همچنین فایل پیکربندی traefik.toml و فایل acme.json  را که ایجاد کردیم در کانتینر به اشتراک می گذاریم.

سپس ، از پورت های 80 و: 443 هاست Docker خود به همان پورت های موجود در کانتینر Traefik ترسیم می کنیم تا Traefik تمام ترافیک HTTP و HTTPS را به سرورمجازی دریافت کند.

سپس دو برچسب Docker تنظیم می کنیم که به Traefik می گوید که باید ترافیک را به سمت نام هاست monitor.your_domain به :8080 درون کانتینر Traefik هدایت کند، که داشبورد نظارت را نشان می دهد.

شبکه کانتینر را روی وب تنظیم می کنیم و کانتینر را traefik نامگذاری می گذاریم.

سرانجام ، از تصویر traefik: 1.7-alpine برای این کانتینر استفاده می کنیم ، زیرا کوچک است.

یک ENTRYPOINT تصویر Docker فرمانی است که همیشه هنگام ایجاد کانتینر از تصویر اجرا می شود. در این حالت ، دستور باینری traefik درون کانتینر است. هنگام راه اندازی کانتینر می توانید آرگومان های دیگری را به آن دستور منتقل کنید ، اما همه تنظیمات خود را در فایل traefik.toml پیکربندی کرده ایم.

با راه اندازی کانتینر ، اکنون داشبوردی دارید که می توانید برای مشاهده سلامت کانتینرهای خود به آن دسترسی داشته باشید. همچنین می توانید از این داشبورد برای تجسم frontends  و  backends که Traefik ثبت کرده استفاده کنید. با رفتن به ادرس https: //monitor.your_domain  در مرورگر خود به داشبورد نظارت دسترسی پیدا کنید. نام کاربری و گذرواژه ادمین  و رمز عبوری که در مرحله 1 پیکربندی کرده اید ، از شما خواسته می شود.

پس از ورود به سیستم ، رابط کاربری مشابه این را مشاهده خواهید کرد:

چیز چندانی برای مشاهده وجود ندارد ، اما این پنجره را باز بگذارید ، و با افزودن کانتینرهایی برای مدیریت Traefik ، تغییر محتوا را مشاهده خواهید کرد.

اکنون پروکسی Traefik در حال اجرا ، پیکربندی شده برای کار با Docker و آماده نظارت بر سایر کانتینرها Docker است. بیایید چند کانتینر برای Traefik به پروکسی اضافه کنیم.

مرحله 3 – ثبت کانتینرها با  Traefik

با استفاده از کانتینر Traefik ، آماده اجرای برنامه هایی در ورای آن هستید. اجازه دهید کانتینرهای زیر را تحت Traefik راه اندازی کنیم:

1- وبلاگی با استفاده از تصویر رسمی وردپرس.

2- یک سرورمجازی مدیریت پایگاه داده با استفاده از تصویر رسمی  Adminer.

ما با استفاده از یک فایل docker-compose.yml هر دو این برنامه ها را با Docker Compose مدیریت خواهیم کرد.

فایل docker-compose.yml را در ویرایشگر خود ایجاد و باز کنید:

  • $ nano docker-compose.yml

خطوط زیر را به فایل اضافه کنید تا نسخه و شبکه هایی را که استفاده خواهیم کرد مشخص کنید:

docker-compose.yml

version: “3”

 

networks:

web:

external: true

internal:

external: false

 

ما از Docker Compose نسخه 3 استفاده می کنیم زیرا جدیدترین نسخه اصلی قالب فایل Compose است.

برای اینکه Traefik برنامه های ما را بشناسد ، آنها باید بخشی از یک شبکه باشند و از آنجا که ما شبکه را به صورت دستی ایجاد کرده ایم ، با تعیین نام شبکه وب و تنظیم external  روی true ، آن را به داخل می کشیم. سپس یک شبکه دیگر تعریف می کنیم تا بتوانیم کانتینرهای در معرض دید خود را به یک کانتینر پایگاه داده متصل کنیم که از طریق Traefik در معرض آن قرار نمی گیریم. ما این شبکه را internalمی نامیم.

در مرحله بعدی ، هر یک از سرویس های خود را یک به یک تعریف خواهیم کرد. بیایید با محتوای وبلاگ شروع کنیم ، که پایه آن را تصویر رسمی وردپرس قرار خواهیم داد. این پیکربندی را به پایین فایل خود اضافه کنید:

docker-compose.yml

 

services:

blog:

image: wordpress:4.9.8-apache

environment:

WORDPRESS_DB_PASSWORD:

labels:

– traefik.backend=blog

– traefik.frontend.rule=Host:blog.your_domain

– traefik.docker.network=web

– traefik.port=80

networks:

– internal

– web

depends_on:

– mysql

 

کلید environment به شما امکان می دهد متغیرهای محیطی را که در داخل کانتینر تنظیم می شوند ، تعیین کنید. با تعیین نکردن مقداری برای WORDPRESS_DB_PASSWORD ، به Docker Compose می گوییم که هنگام ایجاد کانتینر مقدار را از پوسته ما گرفته و آن را عبور دهد. قبل از شروع کانتینرها ، این متغیر محیط را در پوسته خود تعریف خواهیم کرد. به این ترتیب گذرواژه های محکم کد گذاری شده را در فایل پیکربندی وارد نمی کنیم.

قسمت labels  جایی است که شما مقادیر پیکربندی Traefik را تعیین می کنید. برچسب های Docker به تنهایی کاری انجام نمی دهند ، اما Traefik این موارد را می خواند تا بداند چگونه با کانتینرها رفتار کند. آنچه در هر یک از این برچسب ها انجام می شود به این شرح است:

  • backend نام سرویس backend را در Traefik مشخص می کند (که به کانتینر واقعی blog اشاره دارد).
  • frontend.rule=Host:blog.your_domain به Traefik می گوید که میزبان درخواستی را بررسی کند و اگر با الگوی blog.your_domain مطابقت دارد باید ترافیک را به کانتینر blog هدایت کند.
  • docker.network=web مشخص می کند برای یافتن IP داخلی این کانتینر در کدام شبکه به دنبال Traefik بگردید. از آنجا که کانتینر Traefik ما به تمام اطلاعات Docker دسترسی دارد ، اگر این مورد را مشخص نکنیم ، احتمالاً IP را برای شبکه داخلی می گیرد.
  • port پورت در معرض مشخصی را مشخص می کند که Traefik باید از آن برای مسیر یابی به این کانتینر استفاده کند.

با استفاده از این پیکربندی ، تمام ترافیک ارسال شده به پورت 80 میزبان Docker ما به کانتینر blog  هدایت می شود.

ما این کانتینر را به دو شبکه مختلف اختصاص می دهیم تا Traefik بتواند آن را از طریق شبکه وب پیدا کند و بتواند از طریق شبکه داخلی با کانتینر پایگاه داده ارتباط برقرار کند.

سرانجام ، کلید depend_on به Docker Compose می گوید که این کانتینر پس از اجرای متعلقات باید شروع شود. از آنجا که وردپرس برای اجرا به یک پایگاه داده احتیاج دارد ، ما باید قبل از شروع محتوای وبلاگ خود ، محتوای mysql خود را اجرا کنیم.

سپس ، با اضافه کردن این پیکربندی به پایین فایل ، سرویس MySQL را پیکربندی کنید:

docker-compose.yml

mysql:

image: mysql:5.7

environment:

MYSQL_ROOT_PASSWORD:

networks:

– internal

labels:

– traefik.enable=false

 

ما برای این کانتینر از تصویر رسمی MySQL 5.7 استفاده می کنیم. مشاهده خواهید کرد که بار دیگر از یک آیتم environment  بدون مقدار استفاده می کنیم. متغیرهای MYSQL_ROOT_PASSWORD و WORDPRESS_DB_PASSWORD  باید در همان مقدار تنظیم شوند تا اطمینان حاصل شود که کانتینر وردپرس ما می تواند با  MySQL  ارتباط برقرار کند. ما نمی خواهیم کانتینر mysql را در معرض Traefik یا جهان خارج قرار دهیم ، بنابراین فقط این کانتینر را به شبکه داخلی اختصاص می دهیم. از آنجا که Traefik به سوکت Docker دسترسی دارد ، این فرایند همچنان پیش فرض یک کانتینر mysql را نشان می دهد ، بنابراین ما برچسب traefik.enable = false را اضافه می کنیم تا مشخص کنیم Traefik نباید این کانتینر را نشان دهد.

سرانجام ، این پیکربندی را به قسمت پایین فایل خود اضافه کنید تا کانتینر Adminer را تعریف کنید:

docker-compose.yml

adminer:

image: adminer:4.6.3-standalone

labels:

– traefik.backend=adminer

– traefik.frontend.rule=Host:db-admin.your_domain

– traefik.docker.network=web

– traefik.port=8080

networks:

– internal

– web

depends_on:

– mysql

 

این کانتینر بر اساس تصویر رسمی ادمین است. پیکربندی network  و depends_on برای این کانتینر دقیقاً با آنچه برای کانتینر blog  استفاده می کنیم مطابقت دارد.

با این حال ، از آنجا که همه ترافیک را به پورت 80 هاست Docker خود مستقیماً به کانتینر blog  هدایت می کنیم ، باید این کانتینر را به گونه دیگری پیکربندی کنیم تا ترافیک به کانتینر ادمین ما برسد. traefik.frontend.rule=Host:db-admin.your_domain به Traefik می گوید هاست درخواستی را بررسی کند. اگر با الگوی db-admin.your_domain مطابقت داشته باشد ، Traefik ترافیک را به سمت کانتینر مدیر هدایت می کند.

در این مرحله ، docker-compose.yml  باید دارای محتوای زیر باشد:

docker-compose.yml

version: “3”

 

networks:

web:

external: true

internal:

external: false

 

services:

blog:

image: wordpress:4.9.8-apache

environment:

WORDPRESS_DB_PASSWORD:

labels:

– traefik.backend=blog

– traefik.frontend.rule=Host:blog.your_domain

– traefik.docker.network=web

– traefik.port=80

networks:

– internal

– web

depends_on:

– mysql

mysql:

image: mysql:5.7

environment:

MYSQL_ROOT_PASSWORD:

networks:

– internal

labels:

– traefik.enable=false

adminer:

image: adminer:4.6.3-standalone

labels:

– traefik.backend=adminer

– traefik.frontend.rule=Host:db-admin.your_domain

– traefik.docker.network=web

– traefik.port=8080

networks:

– internal

– web

depends_on:

– mysql

 

فایل را ذخیره کرده و از ویرایشگر متن خارج شوید.

سپس ، مقادیر را برای پوسته خود برای متغیرهای WORDPRESS_DB_PASSWORD و MYSQL_ROOT_PASSWORD قبل از شروع کانتینرها خود تنظیم کنید:

  • $ export WORDPRESS_DB_PASSWORD=secure_database_password
  • $ export MYSQL_ROOT_PASSWORD=secure_database_password

 

SECURE_database_password  را با گذرواژه پایگاه داده مورد نظر خود جایگزین کنید. فراموش نکنید که برای هر دو WORDPRESS_DB_PASSWORD و MYSQL_ROOT_PASSWORD از رمز عبور یکسانی استفاده کنید.

با تنظیم این متغیرها ، کانتینرها را با استفاده از docker-compose اجرا کنید:

  • $ docker-compose up -d

اکنون نگاهی دوباره به داشبورد مدیریت Traefik بیندازید. خواهید دید که اکنون یک backend  و  frontend برای دو سرورمجازی وجود دارد:

به blog.your_domain خود بروید. به یک اتصال TLS هدایت خواهید شد و اکنون می توانید تنظیمات WordPress را انجام دهید:

اکنون با مراجعه به db-admin.your_domain در مرورگر خود ، به Adminer دسترسی پیدا کنید و your_domain را دوباره با دامنه خود جایگزین کنید. کانتینر mysql در معرض دنیای خارج نیست ، اما کانتینر adminer  از طریق شبکه داخلی Docker  که با استفاده از نام کانتینر mysql به عنوان نام هاست به آن استفاده میکنند ، دسترسی دارد.

در صفحه ورود به سیستم Adminer ، منوی کشویی System را روی MySQL تنظیم کنید. حالا mysql را برای سرورمجازی وارد کنید ، root  را برای نام کاربری وارد کنید و مقداری را که برای MYSQL_ROOT_PASSWORD برای رمز عبور تعیین کرده اید وارد کنید. Database  را خالی بگذارید. اکنون Login را فشار دهید.

پس از ورود به سیستم ، رابط کاربری Adminer را مشاهده خواهید کرد:

هر دو سایت اکنون کار می کنند و شما می توانید از داشبورد موجود در monitor.your_domain استفاده کنید تا برنامه های خود را تحت نظر داشته باشید.

نتیجه

در این آموزش ، Traefik را به درخواست پروکسی از برنامه های دیگر در کانتینرهای Docker پیکربندی کرده اید.

پیکربندی اعلانی Traefik در سطح کانتینر برنامه ، پیکربندی سرویس های بیشتر را آسان می کند و هنگام افزودن برنامه های جدید به ترافیک پروکسی ، نیازی به راه اندازی مجدد کانتینر traefik نیست زیرا Traefik بلافاصله از طریق فایل سوکت Docker که در حال کنترل است، متوجه تغییر می شود.

برای کسب اطلاعات بیشتر در مورد آنچه می توانید با Traefik انجام دهید ، به مطالب رسمی Traefik مراجعه کنید.

 

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در اوبونتو 20.04

نحوه دانلود فایل ها با cURL

نحوه نصب و ایمن سازی Redis در Centos7

چگونه می توان محیط JupyterLab را در اوبونتو 18.04 تنظیم کرد

نحوه نصب Webmin در Ubuntu 20.04

نحوه بازنویسی آدرس های اینترنتی با mod_rewrite برای Apache در اوبونتو 20.04

نحوه مدیریت چندین سرور با دستورات Ad Hoc Ansible

چگونه می توان REST API را با Prisma و PostgreSQL ساخت

نحوه میزبانی وب سایت با استفاده از Cloudflare و Nginx در اوبونتو 18.04

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در Ubuntu 18.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/