اقتراح لقالب Cloudflare لجلب عنوان IP الحقيقي للمستخدمين

مرحباً بالجميع،

لقد اكتشفت للتو، بالطريقة الطويلة والصعبة، إعداد Cloudflare real_ip_header CF-Connecting-IP; في nginx…

لدي إعداد معقد إلى حد ما حيث يوجد مدير وكيل nginx في صورة docker خاصة به (أستخدم SWAG من linuxserver.io، وهو رائع بالمناسبة)، لذا يبدو مسار الاتصال كالتالي:
المستخدم -> Cloudflare -> الخادم (حاوية docker الأولى: Nginx -> حاوية docker الثانية: Discourse)

لدي كلتا حاويتي docker في نفس شبكة docker، لذا فهما تتواصلان؛ وهذا جيد.
كانت لدي مشكلة حقيقية في محاولة الحصول على عنوان IP الأصلي للمستخدم في سجلات Discourse. قرأت جميع المواضيع الرائعة هنا وأضفت قالب cloudflare إلى ملف app.yml الخاص بي، لكنه لم ينجح…

بعد أن فقدت شعري، أدركت أن المشكلة لم تكن قالب Cloudflare بحد ذاته، بل حقيقة أن حاوية Discourse كانت تحصل على عنوان IP من حاوية NGINX وكان عليّ إضافة نطاق CIDR لعنوان IP الخاص بشبكة docker إلى set_real_ip_from كما يلي:
set_real_ip_from 172.18.0.0/16;

لمساعدة المضيفين المستقبليين، هل من الممكن إضافة هذا السطر إلى قالب cloudflare؟ النطاق IP 172.18.0.0/16 هو نطاق خاص على أي حال، لذلك حتى لو لم يكن لديك NPM في حاوية docker، فلن يضر إضافة هذا النطاق.

اقتراحي هو تغيير هذا السطر في cloudflare.template.yml:
sed -i \"/sendfile on;/a $CONTENTS\\nreal_ip_header CF-Connecting-IP;\" /etc/nginx/conf.d/discourse.conf
إلى هذا السطر:
sed -i \"/sendfile on;/a set_real_ip_from 172.18.0.0/16;\\n$CONTENTS\\nreal_ip_header CF-Connecting-IP;\" /etc/nginx/conf.d/discourse.conf

ما رأيك؟

هناك مجموعة من المواضيع حول استخدام وكيل عكسي تتضمن كيفية القيام بذلك. لا يستخدم كل من يستخدم Cloudflare وكيلًا عكسيًا.

قد يكون قالب الوكيل العكسي جيدًا، حيث يتعين علي البحث عنه في كل مرة أقوم بإعداده بدون نصوصي.

صحيح. والعكس صحيح أيضًا: ليس كل من يستخدم وكيلًا عكسيًا يستخدم Cloudflare :wink:

هذا الاقتراح مخصص حقًا لجعل الحياة أسهل للأشخاص الذين يستخدمون Cloudflare. لن يغير شيئًا لمن لا يستخدم وكيلًا عكسيًا في Docker، ولكنه قد يوفر ساعات من البحث عن إجابة لمشكلة بسيطة.

إعجاب واحد (1)

من المحتمل أن يكون الأشخاص الذين يستخدمون cloudflare يعيشون حياة صعبة. يمكنك البحث هنا والعثور على الكثير من الأمثلة حول كيفية القيام بذلك. تثبيت القالب هو مجرد جزء من المشاكل التي قد تواجهها، والأسهل في الإصلاح. (أوصي باستخدام شبكة توصيل محتوى حقيقية مثل bunny.net وهي رخيصة - ولكن ليست مجانية - وسهلة التكوين، ولكن هذا ليس ما طلبته.)

بالطبع، لم تكن مشكلتك تتعلق بـ cloudflare، بل بالخادم الوكيل العكسي، لذلك من المحتمل أن البحث عن cloudflare لم يساعد!

ومع ذلك، فإن إضافة بضعة قوالب إضافية مثل الخادم الوكيل العكسي (والذي أريده حقًا - واحد لتجميع الأصول مسبقًا ودفعها إلى S3) فكرة جيدة.

حظا سعيدا.

إعجاب واحد (1)