Erreur 502 Gateway sur Nginx ?

RÉSOLU : désactivation du serveur nginx, exécution de discourse-setup, réactivation du serveur nginx et reconstruction de l’application.

Bonjour. J’essaie d’installer Discourse en suivant ce guide.

Voici mon fichier app.yml modifié (copié depuis les dossiers de Discourse et modifié selon les guides) :

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.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"

## 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:
#  - "80:80"   # http
#  - "2222:22"
#  - "443:443" # https

Voici mon bloc nginx de discourse.conf :
server {

server_name forum.myhost;  #
listen [::]:443 ssl http2 ipv6only=on; # géré par Certbot
listen 443 ssl http2; # géré par Certbot
ssl_certificate /etc/letsencrypt/live/forum.myhost/fullchain.pem; # géré par Certbot
ssl_certificate_key /etc/letsencrypt/live/forum.myhost/privkey.pem; # géré par Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # géré par Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # géré par Certbot
ssl on;
http2_idle_timeout 5m; # augmenté de 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;
}
}
server {
if ($host = forum.myhost) {
    return 301 https://$host$request_uri;
} # géré par Certbot

server_name www.forum.myhost;
return 301 $scheme://forum.myhost$request_uri;

    listen 80;
    listen [::]:80;

    server_name forum.myhost;
return 404; # géré par Certbot
}

Le serveur fonctionne avec SSL (Certbot installé) et redirige le HTTP vers le HTTPS sur le domaine principal, mais le domaine du forum affiche une erreur 502 Gateway. J’utilise Cloudflare (sans les options de performance ou de sécurité activées).

Toute aide sera très appréciée. Je ne peux pas exécuter discourse-setup car il affiche « Google : “ouvrir les ports VOTRE SERVICE CLOUD” pour obtenir des informations sur la résolution de ce problème. »

J’ai également vérifié le pare-feu.

MODIFICATION : Peut-être un problème avec cette ligne ? (Je ne vois pas ce fichier dans le dossier)
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;

1 « J'aime »

Pourquoi utilisez-vous nginx comme proxy ?

Y a-t-il d’autres sites web sur ce serveur ?

2 « J'aime »

Oui Stephen, j’utilise nginx et je prévois de déployer un site Drupal. Le domaine par défaut fonctionne avec SSL comme je l’ai mentionné, mais le sous-domaine du forum affiche une erreur 502 Gateway.

OK, j’ai arrêté nginx sur mon serveur et la commande discourse-setup fonctionne, mais je vois maintenant ce message d’erreur :

Activation de Let’s Encrypt
web.ssl.template.yml NON ACTIVÉ – était-il déjà activé ?
letsencrypt.ssl.template.yml NON ACTIVÉ – était-il déjà activé ?

Malheureusement, une erreur s’est produite lors du changement

-d Cela peut arriver si vous avez apporté des modifications inattendues.

Je ne sais vraiment pas si je dois utiliser Let’s Encrypt via Discourse ou en externe si je l’ai déjà installé sur mon serveur.

Merci d’avoir lu.

DERNIÈRE ÉDITION : Je viens de redémarrer le serveur nginx et les domaines principal et secondaire fonctionnent (en conservant le certificat Let’s Encrypt de Certbot sur l’instance Discourse).

2 « J'aime »

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