أنا أختبر نشر Discourse فوق AlmaLinux 9 المشتق من CentOS مع تمكين SELinux و nginx خارجي مُعد.
نظرًا لأن الحاوية المستندة إلى Ubuntu لا تعرف عن SELinux، فإنها تستمر في استبدال مقبس النطاق الموحد بملف جديد غير مُصنف أمنيًا في كل مرة أبدأ فيها الحاوية، ولا يُسمح لـ nginx بالتحدث إليه حتى أقوم بتشغيل restorecon للملف لمنحه سياقًا أمنيًا مسموحًا لـ nginx بالوصول إليه. من الواضح أن هذا لا يعمل كحل إنتاجي.
لا أرغب حقًا في تشغيل semanage permissive -a httpd_t لأنني أرغب في الاستفادة فعليًا من SELinux على الخدمة الوحيدة المفتوحة للعالم الخارجي. ![]()
إنه يعمل إذا قمت بالوكالة إلى منفذ شبكة بدلاً من مقبس نطاق موحد:
setsebool -P httpd_can_network_connect 1- لا تستخدم
templates/web.socketed.template.yml expose: - "8008:80"- في nginx الخارجي،
proxy_pass http://127.0.0.1:8008
هل هناك أي عيوب معينة لهذا؟ هل يجب علي تغيير أي معلمات مثل تحديد الاتصال في هذا التكوين؟
سأقوم بتوثيق هذا بتفصيل أكبر بعد اختبار أكثر شمولاً، وإذا كانت هناك مخاوف إضافية يمكنني تضمينها في ما أقوم بتوثيقه.