Django et Flask Sur un serveur nginx de Gunicorn

Quand je vais à mysite.com, L'application fonctionne sur mon site principal Djago. Cependant, je voudrais mysite.com/flaskapp Lancé une application distincte Flask. Je peux configurer deux fichiers de configuration avec support de site nginx et exécutez chaque application sur un autre port, mais pour diverses raisons, je voudrais les exécuter tout sur un port (si c'est possible). Quand je configure mon flaskapp / location dans le fichier de serveur nginx, Je reçois une erreur 404.

Voici mon fichier de configuration de superviseur:

[program:MYSITE]
command=/var/www/html/MYSITE/prodenv/bin/gunicorn --workers 3 --bind unix:/var/www/html/MYSITE/public_html/MYSITE.sock MYSITE.wsgi
directory=/var/www/html/MYSITE/public_html
autostart=true
autorestart=true
stderr_logfile=/var/log/MYSITE.err.log
stdout_logfile=/var/log/MYSITE.out.log


[program:FLASKAPP]
directory=/var/www/html/MYSITE/public_html/FLASKAPP/api
command=/var/www/html/MYSITE/public_html/FLASKAPP/venv/bin/gunicorn --workers 3 --bind unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock FLASKAPP:app
autostart=true
autorestart=true
stderr_logfile=/var/log/FLASKAPP.err.log
stdout_logfile=/var/log/FLASKAPP.out.log

Et mon site support nginx:

server {
listen 80;
listen [::]:80;

server_name MYSITE;

location = /favicon.ico { access_log off; log_not_found off; }

location /static/ {
root /var/www/html/MYSITE/public_html;
expires 30d;
}

location / {
include proxy_params;
proxy_pass [url=http://unix:/var/www/html/MYSITE/public_html/MYSITE.sock;]http://unix:/var/www/html/MYSI ... ck%3B[/url]
}

location /FLASKAPP/ {
include proxy_params;
proxy_pass [url=http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;]http://unix:/var/www/html/MYSI ... ck%3B[/url]
}


}

Des idées? Remercier!
Invité:

Hannah

Confirmation de:

J'ai compris. J'ai réécrit l'URL pour supprimer le sous-répertoire et tout fonctionne maintenant.

de face:

    location /FLASKAPP/ {
include proxy_params;
proxy_pass [url=http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;]http://unix:/var/www/html/MYSI ... ck%3B[/url]
}

après:

location /FLASKAPP/ {
include proxy_params;
proxy_pass [url=http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;]http://unix:/var/www/html/MYSI ... ck%3B[/url]
rewrite ^/FLASKAPP(.*)$ $1 break;
}




Dominique

Confirmation de:

Cible B. proxy_path. Vous avez

proxy_pass [url=http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;]http://unix:/var/www/html/MYSI ... ck%3B[/url]

, Mais ça devrait être

fastcgi_pass unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;

. effacer

http://

, changement

proxy_pass

à

fastcgi_pass

Et tout devrait fonctionner.

Pour répondre aux questions, connectez-vous ou registre