Quello che sto cercando di ottenere:Come ospitare più applicazioni per flask in un singolo dominio ospitato su nginx?
Ho un server Web nginx che ospita mydomain.com. Quando qualcuno digita il mio dominio.com nel suo client, vorrei che il mio server servisse index.html da /var/www/mydomain/
Quando digitano mydomain.com/flaskapp1 dovrebbero vedere flaskapp1. Quando digitano mydomain.com/flaskapp2 dovrebbero vedere flaskapp2.
Sono riuscito a ottenere una o l'altra app di flask servite utilizzando il tutorial qui http://www.markjberger.com/flask-with-virtualenv-uwsgi-nginx/ ma quando si tenta di implementare servendo due app di flask separate, mi imbatto in difficoltà. Invece di vedere l'app della bottiglia, ricevo un messaggio 404 quando provo ad accedere ad una delle applicazioni di flask con mydomain.co.uk/flaskapp o mydomain.co.uk/flaskapp2 in un browser.
Questo è quello che ho finora:
gatto /etc/nginx/sites-available/mydomain.co.uk file di
server {
listen 80;
server_name www.mydomain.co.uk mydomain.co.uk;
location/{
root /var/www/html/;
index index.html index.htm;
}
location /flaskapp {
include uwsgi_params;
uwsgi_pass unix:/tmp/flaskapp.sock;
}
location /flaskapp2 {
include uwsgi_params;
uwsgi_pass unix:/tmp/flaskapp2.sock;
}
}
È possibile che questo conf è stato sim collegato in /etc/nginx/sites-enabled
.
gatto /etc/uwsgi/apps-available/flaskapp.ini
[uwsgi]
vhost = true
socket = /tmp/flaskapp.sock
venv = /var/www/flaskapp/venv
chdir = /var/www/flaskapp
module = flaskapp
callable = app
gatto /etc/uwsgi/apps-available/flaskapp2.ini
[uwsgi]
vhost = true
socket = /tmp/flaskapp2.sock
venv = /var/www/flaskapp2/venv
chdir = /var/www/flaskapp2
module = flaskapp2
callable = app
Entrambi. i file ini sono stati simmessi in /etc/uwsgi/apps-enabled
. UWSGI si riavvia correttamente senza problemi ed è attivo e funzionante. Sia flaskapp.sock e flaskapp2.sock sono di proprietà di www-data
gatto /var/www/flaskapp/flaskapp.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World from flaskapp1!'
if __name__ == '__main__':
app.run(host='0.0.0.0')
gatto /var/www/flaskapp2/flaskapp2.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World from flaskapp2!'
if __name__ == '__main__':
app.run(host='0.0.0.0')
gatto /var/www/mydomain.co.uk/index.html
<!DOCTYPE html>
<html>
<body>
<h1>mydomain.co.uk</h1>
<p>This is the index page of my domain.co.uk</p>
</body>
</html>
Entrambi gli ambienti virtuali hanno installato il pallone e eseguirà le applicazioni del pallone utilizzando il server di sviluppo.
Spero che sia qualcosa di semplice che mi sia sfuggito.
Ma qual è il tuo problema? cosa non funziona? Qual'è il problema? – GwynBleidD
Ricevo l'errore 404 per entrambe le app del pallone. index.html funziona correttamente. – Hoppo