خادم استضافة موقع الويب (فكر في صفحات GitHub) المصمم للتكامل بعمق مع Traefik للتوجيه وإنهاء TLS.
العمل قيد التقدم
قم بإنشاء دليل من الدلائل ، حيث يكون اسم كل دليل هو اسم مضيف موقع تريد تقديمه ، مع محتواه في الداخل.
/mnt/sites
├── example.com
│ └── index.html
└── othersite.example.com
└── index.html
كيف تصل الملفات إلى هناك. Minio ، rsync
، WebDav ، ansible
، لا يهم.
تتكامل traefik-pages
مع TRAFIK عبر مزود HTTP. عندما يضرب Traefik واجهة برمجة التطبيقات ، يسرد traefik-pages
الدلائل التي تحتوي على مواقع للحصول على أسماء المضيف المطلوبة ، وإرجاع تكوين أجهزة التوجيه لاستخدام Traefik. تحتوي أجهزة التوجيه هذه على قواعد تطابق أسماء المضيف من الدلائل ، والخدمات التي تتطابق مع تلك المحددة في traefik-pages
. تقوم Traefik باستمرار باستطلاعات traefik-pages
لتكوين محدث ، لذلك يتم التقاط المواقع التي تم إنشاؤها حديثًا بسرعة.
أولاً ، قم بإنشاء حاوية traefik-pages
:
traefik-pages :
image : theorangeone/traefik-pages:latest
volumes :
- ./sites:/mnt/sites:ro
environment :
- SITES_ROOT=/mnt/sites
- TRAEFIK_SERVICE=traefik-pages@docker
- AUTH_PASSWORD=hunter2
labels :
- traefik.enable=true
لا يجب أن يكون هذا في نفس الملف مثل Traefik ، ولكنه يجب أن يكون متاحًا لـ Traefik باستخدام اسم مضيف ثابت و IP. إذا كان Trafik يعمل في وضع المضيف (كما أفعل) ، فستحتاج إلى ربط traefik-pages
بواجهة داخلية ، والاستماع إلى ذلك.
تتيح التسمية تكوين Trafik AutoConfiguration من اكتشاف traefik-pages
. لاحظ أن $TRAEFIK_SERVICE
يجب أن يتطابق مع اسم الخدمة الذي تم إنشاؤه بواسطة Traefik.
بعد ذلك ، ستحتاج إلى إنشاء موفر HTTP لـ Traefik ، باستخدام المنافذ وكلمة المرور التي تم تكوينها مسبقًا.
providers :
...
http :
endpoint :
- " http://[email protected]:5000/.traefik-pages/provider "
هنا يمكنك أيضًا تكوين فاصل الاقتراع traefik-pages
.
الآن ، ما عليك سوى بدء traefik-pages
، ويجب أن تبدأ في التواصل وإنشاء أجهزة التوجيه لمواقعك.
يتم تكوين traefik-pages
بالكامل من خلال متغيرات البيئة:
$SITES_ROOT
: دليل حيث يتم تخزين المواقع (مطلوب).
$TRAEFIK_SERVICE
: اسم الخدمة traefik-pages
، حيث سيتم توجيه حركة المرور (مطلوب).
$AUTH_PASSWORD
: اسم مستخدم Auth الأساسي المطلوب للوصول إلى عناوين URL الخاصة ( /.traefik-pages/*
) (مطلوب).
$DENY_PREFIXES
: قائمة مفصولة بفاصلة ببادئ بادئات عناوين URL لتجاهلها (إرجاع 404 على الفور). فارغة بشكل افتراضي.
$LOG_INTERNAL
: ما إذا كان لتسجيل طلبات عناوين URL الداخلية (خطأ افتراضي).
$TRAEFIK_CERT_RESOLVER
: RESOLVER TAREFIK لاستخدامه لتوفير شهادات TLS (افتراضيًا لن يتم طلب شهادات).
$PORT
: منفذ للاستماع (الافتراضي 5000).
$WORKERS
: عدد عمليات العمال للتعامل مع الطلبات (الافتراضي 1).
traefik-pages
مكتوبة في الصدأ ، ومصممة لتكون بأسرع وقت ممكن.
Requests per second: 6786.85 [#/sec] (mean)
Time per request: 14.734 [ms] (mean)
Time per request: 0.147 [ms] (mean, across all concurrent requests)
Transfer rate: 1471.37 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 2
Processing: 3 15 5.5 14 51
Waiting: 2 14 5.5 14 51
Total: 3 15 5.5 14 51
Percentage of the requests served within a certain time (ms)
50% 14
66% 16
75% 17
80% 18
90% 21
95% 25
98% 30
99% 35
100% 51 (longest request)
تم إجراء هذه الاختبارات على 2600x ، مع عملية عامل واحد.