Forum

Need some help? Ask our community for its assistance!

You are not logged in.

#1 21-10-2019 18:43:48

vrialland
Membre
Registered: 21-10-2019
Posts: 3

Configuration uWSGI / Apache

Bonjour à tous,

après quelques tentatives de configuration infructueuses, je viens vous demander de l'aide :)

Je suis sur une offre mutualisée et je veux héberger dessus un site Django et une SPA avec les URLs suivantes :

- /api : vues Django Rest Framework
- /admin : admin Django
- /static : fichiers statiques de l'app Django
- / : ma SPA (Ember)

La configuration du site est "Python WSGI" et j'ai ajouté quelques directives dans la conf :

Chemins statiques (static contient les statics Django et www les assets de ma SPA) :

/static/=/static/
/=/www/

Et dans "Paramètres supplémentaires uWSGI", j'ai ajouté :

static-index = index.html

Ainsi si je vais à la racine de mon site j'ai bien l'app JS qui se lance.
Cependant la SPA gère elle aussi les URLs par exemple "/login" et avec cette configuration je tombe forcément sur une 404, d'où mes questions :

- Peut-on coupler une conf Apache et une conf uWSGI pour ne servir par exemple que /api et /admin en WSGI et gérer le reste via la conf Apache ? Et si oui, comment ?
- Si non, j'ai aussi tenté le plugin rewrite uWSGI mais sans succès avec cette conf

plugins = cheaper_busyness,router_static,router_rewrite,python_3_7
route-uri = ^(?!/index.html|\/admin|\/api|\/static).* rewrite-last:/index.html

Si j'utilise la commande log avec

route-uri = ^(?!/index.html|\/admin|\/api|\/static).* log:on y est

je vois bien les logs apparaître quand je passe par exemple sur /login mais la redirection ne se fait pas.
Est-ce qu'on peut utiliser ce plugin ? Et si oui, est-ce que ma conf est mauvaise ?

Merci d'avance !

Offline

#2 22-10-2019 09:38:20

@Cyril
Staff
From: Paris
Registered: 06-02-2007
Posts: 5,670
Website

Re: Configuration uWSGI / Apache

Bonjour,

Le plus simple, c'est de créer 3 sites. Imaginons que votre sous-domaine soit example.org  :

- http://example.org/ : type Fichiers statiques, pour votre SPA
- http://example.org/api et http://example.org/admin : type WSGI, pour votre application Django
- http://example.org/static : type Fichiers statiques, pour vos statiques Django

Offline

#3 22-10-2019 13:30:35

vrialland
Membre
Registered: 21-10-2019
Posts: 3

Re: Configuration uWSGI / Apache

Bonjour et merci ! Je n'avais pas tilté qu'on pouvait avoir plusieurs sites par compte smile

J'ai essayé avec cette config, c'est en effet plus propre et cela fonctionne mis à part un dernier point. Je voudrais que la SPA puisse gérer automatiquement des URLs, normalement la configuration Apache qui le permet est la suivante :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.html [L]
</IfModule>

où peu importe l'URL, on tape sur index.html et c'est la SPA qui va s'initialiser comme il faut selon le path.

J'ai essayé de configurer la racine du sous-domaine en tant que config Apache personnalisée avec le code ci-dessus mais j'ai une erreur de validation

Adresse : Le type de ce site ne permet pas de partager ce sous-domaine avec d'autres sites : Backend, Django statics

Je vois bien d'où viens l'erreur à savoir qu'avec cela, je "masquerais" mes autres règles pour les statiques et le backend.
Est-ce qu'une telle configuration est quand même possible (en servant toujours la webapp sur /) ?

Offline

#4 22-10-2019 13:35:34

vrialland
Membre
Registered: 21-10-2019
Posts: 3

Re: Configuration uWSGI / Apache

J'ai trouvé en fait...

La solution était de changer la configure globale Apache dans la section "Web" du compte où j'ai inséré :

<Location />
RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.html [L]
</Location>

Merci encore de m'avoir indiqué la gestion des sites Cyril smile

Offline

Board footer

Powered by FluxBB