Forum Programmation.python Paster + apache et mod_proxy en SSL

Posté par .
3
24
oct.
2012

J'ai eu du mal à trouver de la doc, donc voilà comment faire tourner paster avec apache en frontal via mod_proxy, en https.

Le but est de laisser apache gérer https, puis de faire suivre la requête à paster.

 requête https           http
--------------->[apache]------>[paster        ]
                [*:443 ]       [127.0.0.1:8080]

La difficulté est de faire que les liens dans les pages retournées par paster commencent bien par https://

En fait le salut vient de PrefixMiddleware qui va permettre de donner le bon scheme de calcul d'url à paster. Il saura que c'est https car apache lui passera la valeur dans l'en-tête X-Forwarded-Scheme.

Dans le deploy.ini, en imaginant que myapp est la section de votre application::

[filter-app:main]
use = egg:PasteDeploy#prefix
next = myapp

Et la conf apache (avec mod_ssl, mod_proxy et mod_headers installés) :

<virtualhost *:443>
  ServerName mydomain
  SSLEngine on

  SSLCertificateFile /path/to/certif.crt
  SSLCertificateKeyFile /path/to/certif.key
  ProxyPreserveHost On
  ProxyRequests Off
  RequestHeader set X-Forwarded-Scheme https

  ProxyPass / http://127.0.0.1:8083/
</virtualhost>

Et voilà !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.