Nginx لا يستمع إلى IPv6 إذا لم يستخدم HTTPS

لقد قمت بإعداد خادم اختبار في شبكة داخلية (لا يمكن الوصول إليه من الخارج، لذا لا يمكن إعداد شهادة Let’s Encrypt)، ووجدت أن Nginx لا يستمع إلى IPv6 عندما يكون للخادم عنوان IPv6. يُظهر الملف /etc/nginx/conf.d/discourse.conf داخل الحاوية listen 80; ولكن لا يوجد listen [::]:80;.

لدي خادم إنتاج آخر يمكن الوصول إليه عبر IPv6 بشكل طبيعي. وقد بحثت في المنتدى للعثور على الخطأ في تكوين خادم الاختبار الخاص بي. أخيرًا، وجدت أنه فقط إذا قمت بإضافة web.letsencrypt.ssl.template.yml و web.ssl.template.yml إلى ملف app.yml الخاص بي، يمكنني استخدام IPv6 بشكل طبيعي. السبب هو أن هذه الملفات تضيف listen [::]:80; و listen [::]:443 ssl http2; في ملف تكوين Nginx.

يمكن للفريق إضافة دعم IPv6 للتثبيتات غير HTTPS، أي إضافة listen [::]:80; إلى web.template.yml.

لا يعمل Discourse في الغالب بدون HTTPS. قد لا يضيفون الميزة التي تطلبها. ولكن يمكنك إلقاء نظرة على قالب SSL لمعرفة ما يتم تضمينه لتشغيل IPv6 وإضافة هذا الرمز إلى القالب الخاص بك أو إلى app.yml.

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

نعم، لقد حاولت الإضافة إلى app.yml بهذا الشكل وهي تعمل.

hooks:
  after_web_config:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /listen.+$/
        to: |
          listen 80;
          listen [::]:80;
إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.