Unix:/var/discourse/shared/standalone/nginx.http.sock (2: الملف أو الدليل غير موجود) [تم الحل]

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

حصلت على خطأ 502 Bad Gateway على موقعي الإلكتروني، ولا أستطيع تجاوز هذه المشكلة مع nginx.http.sock

سجل أخطاء Nginx

[crit] 14339#14339: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: **.***.***.***, server: mydomain.net, request: "GET / HTTP/2.0", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/", host: "mydomain.net", referrer: "https:/mydomain.net/" "

فيما يلي ملف discourse.conf الخاص بي

server {
    listen 80;
    listen [::]:80;
    server_name mydmain.net www.mydomain.net;  # <-- قم بتغيير هذا

}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mydomain www.mydomain.net;  # <-- قم بتغيير هذا

    ssl on;
    ssl_certificate /etc/letsencrypt/live/mydomain.net/fullchain.pem; # تم إدارته بواسطة Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.net/privkey.pem; # تم إدارته بواسطة Certbot
    ssl_dhparam /etc/letsencrypt/live/mydomain.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;

    }
}

ملف app.yml الخاص بي

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق عن هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
##  - "templates/web.socketed.template.yml"
## ما هي منافذ TCP/IP التي يجب أن يعرضها هذا الحاوية؟
## إذا كنت تريد مشاركة منفذ من Discourse مع خادم ويب آخر مثل Apache أو nginx،
## راجع https://meta.discourse.org/t/17247 للحصول على التفاصيل
#expose:
# - "2045:80"   # http
# - "1443:443" # https

لقد حاولت إلغاء التعليق عن “templates/web.socketed.template.yml” أيضاً، لكن النتيجة نفسها ظهرت في سجل أخطاء Nginx. ماذا يجب أن أفعل لحل هذه المشكلة؟ لقد نفذت من الأفكار. يرجى المساعدة ;/

لست خبيرًا، وما لم أكن مخطئًا، إذا اخترت طريقة الـ socket، فغالبًا ما ستحتاج إلى إزالة التعليق عن web.socketed.template.

مرحباً، لقد فعلت ذلك بالفعل وحصلت على نفس النتيجة.

لقد جربته للتو على تثبيتاتي (كنت أستخدم الطريقة الأخرى مع الاستماع لمنفذ) وهو يعمل.

تحتاج إلى التأكد من:

  • أن قوالب SSL/Let’s Encrypt معطلة لأنها مُدارة بالفعل من خلال إعدادات Nginx الخارجية الخاصة بك.
  • إعادة بناء التطبيق بحيث يظهر ملف nginx.http.sock في /var/discourse/shared/standalone/

تأكد من:

  • أن قوالب SSL/Let’s Encrypt معقّدة (commented) لأن إعدادها يتم بالفعل عبر إعدادات Nginx الخارجية الخاصة بك.
  • إعادة بناء التطبيق حتى يظهر ملف nginx.http.sock في /var/discourse/shared/standalone/

حسنًا، لكن ماذا سيحدث لهذه السطر إذن؟ خطأ 502 Gateway قد اختفى والموقع يعمل، لكنني أرى نفس خطأ nginx بسبب هذا السطر.

location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;

يبدو أن SSL لا يعمل، والصور غير معروضة. لقد قمت برفع شعار عند إعداد المنتدى.

إذا لم يكن ذلك قد تم بالفعل، حاول تفعيل خيار discourse force https (علامة التبويب الأمان)

يا إلهي!!! شكرًا جزيلًا لك <3. أنا مدين لك ببعض الفواكه :smiley:. الآن عليّ أن أكتشف كيفية جعل SMTP يعمل، لأن Yandex لم ينجح ولم أستلم أي بريد إلكتروني عند تسجيل مستخدمين تجريبيين.

لقد جربت جميع الاقتراحات السابقة، لكنني ما زلت أحصل على خطأ 502 Bad Gateway. في الوقت الحالي، لا أستخدم HTTPS.

إليك خطأي:

> 2020/04/02 00:17:54 [crit] 18599#18599: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: xx.xxx.xxx.xx, server: talk.mydomain.com, request: "GET / HTTP/1.1", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/", host: "talk.mydomain.com"
> 
> 2020/04/02 00:17:54 [crit] 18599#18599: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: xx.xxx.xxx.xx, server: talk.mydomain.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/favicon.ico", host: "talk.mydomain.com", referrer: "http://talk.mydomain.com/"

إليك ملف /etc/nginx/sites-enabled/discourse.conf:

server {
        listen 80; listen [::]:80;
        server_name talk.mydomain.com;
        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 $scheme;
                proxy_set_header X-Real-IP $remote_addr;
        }
}

إليك قسم القالب في ملف /var/discourse/containers/app.yml:

server {
        listen 80; listen [::]:80;
        server_name talk.mydomain.com;
        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 $scheme;
                proxy_set_header X-Real-IP $remote_addr;
        }
}

أرجو التوجيه.