مرحباً،
عندما أكتب مثلاً “thenameofmywebsite.com” في المتصفح، لا يتم التحويل تلقائياً إلى بروتوكول SSL الآمن https.
أين يمكنني تغيير هذا الإعداد في Discourse؟ شكراً.
مرحباً،
عندما أكتب مثلاً “thenameofmywebsite.com” في المتصفح، لا يتم التحويل تلقائياً إلى بروتوكول SSL الآمن https.
أين يمكنني تغيير هذا الإعداد في Discourse؟ شكراً.
Discord منتج مختلف، أفترض أنك تقصد Discourse.
كيف قمت بإعداد SSL؟ وكيف تم تثبيت هذه النسخة؟
إذا اتبعت الدليل القياسي، فإن إعادة التوجيه إلى HTTPS تعمل بشكل قياسي، مما يشير إلى أنك إما قمت بالتثبيت بطريقة مختلفة، أو غيرت الإعدادات بعد التثبيت.
عذراً، خطأ إملائي.
إليك ملف discourse.conf الخاص بي:
server {
if ($host = wolcengame.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name wolcengame.net www.wolcengame.net;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wolcengame.net www.wolcengame.net;
إذًا، هناك فرق بين https://wolcengame.net و www.wolcengame.net. الرابط الأول يعمل ويحمل الصفحة، لكن عند النقر على الرابط الثاني يتحول إلى https://www.wolcengame.net ويظهر شاشة سوداء دون تحميل أي شيء.
لا أعرف ما الخطأ وكيف يمكن إصلاحه.
قم بإزالة هذا الجزء ثم أعد تشغيل nginx، ويجب أن يعمل بشكل صحيح.
لا أعتقد أن أي شيء قد تغير. المشكلة لا تزال قائمة. هل لديك أي فكرة أخرى؟
يمكن تغيير هذا التكوين بعدة طرق.
مرحبًا بهانو.
DISCOURSE_HOSTNAME: wolcengame.net
لدي موقع آخر بنفس إعدادات discourse.conf، ولا توجد مشكلة مماثلة هناك.
سؤالي هو: هل هناك شيء في discourse يتعارض مع إعادة توجيه nginx؟ لقد جربت كل شيء أمس ونفدت من الأفكار لحل هذه المشكلة.
هذا هو موقعي الثاني www.koktailmolotov.com. كما ترون، عند النقر على الموقع، يتم إعادة توجيهه تلقائيًا إلى الصيغة https://koktailmolotov.com. إعدادات الملف conf هي نفسها لموقع discourse الخاص بي.
هذا غير ممكن، حيث أن جميع حركة المرور يتم التعامل معها بواسطة nginx الخارجي. أفترض هنا أنك تقوم بتشغيل Discourse في قالب مقابس (socketed template) وأن وكيل nginx الخارجي يتعامل مع جميع حركة المرور.
إذا كنت تستطيع نشر إعدادات nginx الخاصة بـ Discourse، فقد أتمكن من مساعدتك في تحديد المشكلة.
فيما يلي تكوين nginx الكامل لـ discourse.conf كما هو اليوم:
server {
listen 80; listen [::]:80; server_name www.wolcengame.net; return 301 $scheme://wolcengame.net$request_uri;}
server {
listen 443 ssl http2; listen [::]:443 ssl http2; server_name wolcengame.net www.wolcengame.net; ssl on; ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem; # تم إدارته بواسطة Certbot ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem; # تم إدارته بواسطة Certbot ssl_dhparam /etc/letsencrypt/live/wolcengame.net/dhparams.pem; include /etc/nginx/snippets/ssl.conf; http2_idle_timeout 5m; # تم رفعه من الافتراضي 3m location / { proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; }}
غيّر هذا إلى
return 301 https://wolcengame.net$request_uri;
احذف www.wolcengame.net من هذا
وأُنشئ كتلة منفصلة مثل
listen 443 ssl;
listen [::]:443 ssl;
server_name www.wolcengame.net;
ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem;
return 301 https://wolcengame.net$request_uri;
ولتوضيح الأمر، هذه ليست مشكلة في ديسكورد على الإطلاق.
لا يمكن لـ ديسكورد العمل إلا تحت اسم نطاق كامل (FQDN) واحد. المشكلة تكمن في أنك قمت بتكوين اثنين ولم تقم بإعداد إعادة التوجيه الخاصة بك بشكل صحيح. وقد تم الإجابة على حلول كلتا المشكلتين بالفعل في مواضيع أخرى.
أنت عبقري، هذا قد حل المشكلة. شكرًا جزيلاً لك