Discours avec le proxy inverse NginX - Impossible de se connecter

Lorsque vous exécutez un proxy inverse NGINX devant Discourse, vous ne pouvez pas vous connecter au site. Après avoir soumis vos identifiants, vous êtes renvoyé vers la page d’accueil et aucune session n’est créée. Aucun message d’erreur n’est affiché et, d’après les journaux, la connexion semble avoir réussi.

Création de la portée :open. Écrasement de la méthode existante Poll.open.
Démarrage de GET "/" pour 10.42.4.0 le 2021-10-05 14:24:41 +1300
Traitement par ListController#latest en tant que HTML
  Rendu de list/list.erb dans layouts/application (Durée : 8,8 ms | Allocs : 1141)
  Rendu de layout layouts/application.html.erb (Durée : 22,9 ms | Allocs : 3194)
Terminé 200 OK en 189 ms (Vues : 23,9 ms | ActiveRecord : 0,0 ms | Allocs : 21280)
Création de la portée :open. Écrasement de la méthode existante Poll.open.
Démarrage de GET "/session/csrf" pour 10.42.4.0 le 2021-10-05 14:24:52 +1300
Traitement par SessionController#csrf en tant que JSON
Terminé 200 OK en 384 ms (Vues : 0,3 ms | ActiveRecord : 0,0 ms | Allocs : 5303)
Démarrage de POST "/session" pour 10.42.4.0 le 2021-10-05 14:24:52 +1300
Traitement par SessionController#create en tant que */*
  Paramètres : {"login"=>"admin", "password"=>"[FILTRE]", "second_factor_method"=>"1", "timezone"=>"Pacific/Auckland"}
Terminé 200 OK en 1043 ms (Vues : 0,3 ms | ActiveRecord : 0,0 ms | Allocs : 147364)
Démarrage de POST "/login" pour 10.42.4.0 le 2021-10-05 14:24:54 +1300
Traitement par StaticController#enter en tant que HTML
  Paramètres : {"username"=>"admin", "password"=>"[FILTRE]", "redirect"=>"https://forum.test.financefeast.io/"}
Redirection vers https://forum.test.financefeast.io/
Terminé 302 Found en 3 ms (ActiveRecord : 0,0 ms | Allocs : 710)
Démarrage de GET "/" pour 10.42.4.0 le 2021-10-05 14:24:54 +1300
Traitement par ListController#latest en tant que HTML
  Rendu de list/list.erb dans layouts/application (Durée : 46,7 ms | Allocs : 11808)
  Rendu de layout layouts/application.html.erb (Durée : 308,6 ms | Allocs : 53646)
Terminé 200 OK en 1123 ms (Vues : 311,1 ms | ActiveRecord : 0,0 ms | Allocs : 167190)

Testé sans le proxy inverse NGINX devant Discourse, les connexions fonctionnent correctement. Existe-t-il une configuration spécifique pour NGINX afin de faire fonctionner cela ?

Voici la configuration NGINX :

server {

    listen 80;
    server_tokens off;
    server_name forum.test.financefeast.io;
    location / {
        return 301 https://$host$request_uri;
    }
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
         expires 30m;
         add_header Pragma public;
         add_header Cache-Control "public";
    }
}
		
server {

    ssl_certificate /etc/nginx/certs/test.financefeast.io-bundle.crt;
    ssl_certificate_key /etc/nginx/certs/test.financefeast.io.key;

    listen 443 ssl;
    server_name forum.test.financefeast.io;
    location / {
	add_header 'Access-Control-Allow-Origin' "$http_origin";
	add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
	add_header 'Access-Control-Allow-Credentials' 'true';
	add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
	proxy_set_header Host $http_host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_read_timeout 90;
	proxy_http_version 1.1;
 	proxy_buffers 8 32k;
	proxy_buffer_size 64k;
	proxy_pass   https://kube_lb;
	}
}

Vous avez oublié d’ajouter un en-tête :

proxy_set_header X-Forwarded-Proto https;

résoudra ce problème.

1 « J'aime »

J’ai ajouté cette directive, mais je rencontre toujours le même problème. La configuration ressemble désormais à ceci :

server {

    listen 80;
    server_tokens off;
    server_name forum.test.financefeast.io;
    location / {
         return 301 https://$host$request_uri;
    }
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
         expires 30m;
         add_header Pragma public;
         add_header Cache-Control "public";
    }
}
		
server {

    ssl_certificate /etc/nginx/certs/test.financefeast.io-bundle.crt;
    ssl_certificate_key /etc/nginx/certs/test.financefeast.io.key;

    listen 443 ssl;
    server_name forum.test.financefeast.io;
    location / {
		add_header 'Access-Control-Allow-Origin' "$http_origin";
		add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
		add_header 'Access-Control-Allow-Credentials' 'true';
		add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto https;
		proxy_read_timeout 90;
		proxy_http_version 1.1;
 		proxy_buffers 8 32k;
		proxy_buffer_size 64k;
		proxy_pass   https://kube_lb;
	}
}

Avez-vous réussi à résoudre ce problème, j’ai le même problème aussi.

Il semble que vous ayez résolu votre problème dans le nouveau sujet que vous avez créé :

1 « J'aime »