Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Pb de préfixe avec wws

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Frank Bonnet <adresse@cachée>
  • To: adresse@cachée
  • Subject: Re: [sympa-fr] Pb de préfixe avec wws
  • Date: Fri, 27 Jul 2012 07:29:27 +0200


CYBERDROID Inc.
bonjour

avez vous posté dans la liste nginx ?

 

Le 26/07/2012 21:24, Daniel Caillibaud a écrit :
Le 25/07/12 à 23:50, Daniel Caillibaud <adresse@cachée> a écrit :
DC> Mon pb est que wws ne semble pas tenir compte de mon 
DC> 
DC> wwsympa_url	https://mail.sesamath.net/listes
DC> 
DC> car il annonce "ERREUR (listes) - Opération incorrecte", et tous les liens pointent vers la
DC> racine.

Visiblement, ce n'est pas possible avec nginx d'avoir un prefixe (que le cgi ajoute /prefixe/
à tous ses liens internes), en tout cas je n'y arrive pas malgré beaucoup d'essais.

Mon pb est que je veux sympa en https, sur un serveur qui a d'autres applis en https, je ne
peux donc pas avoir un server_name uniquement pour sympa (en fait avec nginx on pourrait, mais
le certificat serait foireux, car on ne peut avoir qu'un certificat par IP).

Je suppose que le pb est lié aux paramètres passés au cgi qui diffèrent entre le scriptAlias
d'apache et le fastcgi_pass de nginx.

Avec nginx, j'utilise un socket lancé par 
spawn-fcgi -s /var/run/sympa/wwsympa-fcgi.sock -U www-data -u sympa -g sympa \
  /usr/lib/cgi-bin/sympa/wwsympa.fcgi -P /var/run/sympa/wwsympa-fcgi.pid

À partir de ma config qui marche pour sympa à la racine du vhost, qui est :

        location / {
	  gzip off;
	  root /usr/lib/cgi-bin/sympa;
          fastcgi_pass   unix:/var/run/sympa/wwsympa-fcgi.sock;
          fastcgi_param  QUERY_STRING       $query_string;
          fastcgi_param  REQUEST_METHOD     $request_method;
          fastcgi_param  CONTENT_TYPE       $content_type;  
          fastcgi_param  CONTENT_LENGTH     $content_length;
	  fastcgi_param  PATH_INFO          $fastcgi_script_name;
	  fastcgi_param  REQUEST_URI        $request_uri;
          fastcgi_param  REMOTE_ADDR        $remote_addr;
          fastcgi_param  SERVER_NAME        $server_name;
	  fastcgi_param  SCRIPT_FILENAME    $document_root/wwsympa.fcgi;
        }

j'ai essayé

1) remplacer 
        location /
par
        location /listes
et
wwsympa_url	https://mail.sesamath.net
par
wwsympa_url	https://mail.sesamath.net/listes

ça donne
=> ERREUR (listes) - Opération incorrecte 
=> tous les liens vers la racine du vhost (/home, /lists, ...)


2) idem 1), mais en essayant de virer le "listes" de ce qui est transmis au cgi
	  if ( $request_uri ~ "^/listes(.*)$") {
	    set $requested_action $1;
	  }
	  fastcgi_param  PATH_INFO          $requested_action; # et pas $fastcgi_script_name
          fastcgi_param  REQUEST_URI        $requested_action; # et pas $request_uri

=> j'ai plus le "ERREUR (listes) - Opération incorrecte" mais toujours les liens vers la
racine :-/


3) J'ai aussi tenté de mettre sympa sur localhost et d'y aller avec du proxy_pass depuis le
https.
Ça marche bien, enfin presque... les mails de demande de mot de passe arrivent avec des url du
genre http://127.0.0.1:8000/help

4) Je vous épargne tous les autres essais, en désespoir de cause j'ai configuré wwsympa
comme s'il était à la racine et je lui envoie toutes les urls qui ne correspondent pas à des
fichiers / dossiers. Mais si le webmail qui est aussi à la racine (et doit le rester) veut
aussi des urls dans ce genre il faudra filtrer à coup de regex.
Et si sympa construit des urls qui correspondent à des fichiers / dossiers existants ça marchera
pas non plus.

Pour le moment ça marche avec

        location / {
		# root pour le webmail
                try_files $uri $uri/ @sympa;
        }

        location @sympa {
          rewrite /wws(/.*) /$1 break;
          fastcgi_pass   unix:/var/run/sympa/wwsympa-fcgi.sock;
          fastcgi_param  QUERY_STRING       $query_string;
          fastcgi_param  REQUEST_METHOD     $request_method;
          fastcgi_param  CONTENT_TYPE       $content_type;
          fastcgi_param  CONTENT_LENGTH     $content_length;
          fastcgi_param  PATH_INFO          $fastcgi_script_name;
          fastcgi_param  REQUEST_URI        $request_uri;
          fastcgi_param  REMOTE_ADDR        $remote_addr;
          fastcgi_param  SERVER_NAME        $server_name;
          # le cgi enlève le s de https dans pas mal de liens si on lui donne pas ça
          fastcgi_param  SSL_PROTOCOL       $ssl_protocol;
          # celui-là est indispensable pour avoir le s dans les urls des mails envoyés 
          # (oubli de pass)
          fastcgi_param  HTTPS              on;
        }
avec 
wwsympa_url	https://mail.sesamath.net/wws

Donc pb pas réglé mais à peu près contourné.





Archives gérées par MHonArc 2.6.19+.

Haut de le page