Unix:/var/discourse/shared/standalone/nginx.http.sock (2: Aucun fichier ou répertoire de ce type) [RÉSOLU]

Bonjour à tous,

J’ai obtenu une erreur 502 Bad Gateway sur mon site web et je n’arrive pas à résoudre ce problème avec nginx.http.sock.

Nginx error.log

[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/" "

Voici mon fichier discourse.conf

server {
    listen 80;
    listen [::]:80;
    server_name mydmain.net www.mydomain.net;  # <-- modifiez ceci

}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mydomain www.mydomain.net;  # <-- modifiez ceci

    ssl on;
    ssl_certificate /etc/letsencrypt/live/mydomain.net/fullchain.pem; # géré par Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.net/privkey.pem; # géré par Certbot
    ssl_dhparam /etc/letsencrypt/live/mydomain.net/dhparams.pem;
    include /etc/nginx/snippets/ssl.conf;

    http2_idle_timeout 5m; # augmenté par rapport à la valeur par défaut de 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;

    }
}

Mon fichier app.yml

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
##  - "templates/web.socketed.template.yml"
## Quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
#expose:
# - "2045:80"   # http
# - "1443:443" # https

J’ai essayé de décommenter “templates/web.socketed.template.yml” également, mais le résultat dans le journal d’erreurs Nginx reste le même. Que dois-je faire pour résoudre ce problème ? Je suis à court d’idées. Merci de votre aide ;/

Je ne suis pas un expert, et sauf erreur de ma part, si vous optez pour la méthode des sockets, vous devrez probablement décommenter web.socketed.template.

Hé, je l’ai déjà fait et j’obtiens le même résultat.

Je viens de tester sur mon installation (j’utilisais l’autre méthode avec un port à l’écoute) et cela fonctionne.

Vous devez vous assurer que :

  • Les modèles SSL/Let’s Encrypt sont commentés, car ils sont déjà gérés par votre configuration Nginx externe.
  • Vous reconstruisez l’application afin que le fichier nginx.http.sock apparaisse dans /var/discourse/shared/standalone/.

Assurez-vous que :

  • Les modèles SSL/Let’s Encrypt sont commentés, car ils sont déjà gérés par votre configuration Nginx externe.
  • Vous reconstruisez l’application afin que le fichier nginx.http.sock apparaisse dans /var/discourse/shared/standalone/.

D’accord, mais que se passera-t-il alors avec cette ligne ? L’erreur 502 Gateway a disparu et le site est en ligne, mais je vois toujours la même erreur Nginx à cause de cette ligne.

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

SSL ne semble pas fonctionner et les images ne s’affichent pas. J’ai téléchargé un logo lors de la configuration du forum.

Si ce n’est pas déjà fait, essayez d’activer l’option Discourse force https (onglet Sécurité)

OMGGG!!! Mille merci <3. Je te dois des fruits :smiley:. Et maintenant, je dois trouver comment faire fonctionner SMTP, car avec Yandex, ça ne marchait pas et je ne reçois aucun e-mail lors de l’inscription des utilisateurs de test.

J’ai essayé toutes les suggestions ci-dessus, mais je rencontre toujours une erreur 502 Bad Gateway. Pour l’instant, je n’utilise pas HTTPS.

Voici mon erreur :

> 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/"

Voici mon fichier /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;
        }
}

Voici la section de modèle du fichier /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;
        }
}

Merci de me conseiller.