J'ai un gunicorn qui sert une application flask derrière Apache en utilisant mod_proxy.
Gunicorn est sur http://localhost:8080/
. Disons que mon serveur est sur http://example.com/
Parfois, lorsque je poste un lien invalide sur mon serveur (comme l'oubli de la queue), disons que http://example.com/with-no-trailing-slash
l'utilisateur est redirigé vers http://localhost:8080/with-no-trailing-slash
qui n'est pas valide car il n'y a pas de serveur sur la machine cliente.
Savez-vous pourquoi il se comporte comme ça ? Et comment réparer ce comportement ?
Pour commencer la gunicorn, je fais ça : sudo gunicorn -b localhost:8080 app:app
<VirtualHost *:80>
ServerName example.com
ServerAlias example.com
DocumentRoot /opt/example
<Proxy *>
AuthType basic
AuthBasicAuthoritative Off
SetEnv proxy-chain-auth On
Order allow,deny
Allow from all
</Proxy>
# Let apache serve static files
ProxyPass /robots.txt !
ProxyPass /favicon.ico !
ProxyPass /static/ !
Alias /static/ /opt/example/app/static/
# Gunicorn handle the others
ProxyPass / http://localhost:8080/
# robots.txt et favicon.ico sont dans /path/to/django/project/static/
Alias /robots.txt /path/to/django/project/static/robots.txt
Alias /favicon.ico /path/to/django/project/static/favicon.ico
Alias /favicon.ico /path/to/django/project/static/favicon.ico
<Directory /path/to/django/project>
Order deny,allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
Si vous avez besoin d'un autre fichier de configuration, faites-le moi savoir !