2017-01-26 5 views
3

Ich versuche, eine einfache Flask-App auf EC2 bereitzustellen. Alles funktioniert gut, aber wenn ich versuche, meine Website zuzugreifen bekomme ich einen 404-Fehler, der sagt:Flask-App auf AWS EC2 bereitstellen

Die angeforderte URL /flaskapp.py/flaskapp.wsgi/ auf diesem Server nicht gefunden wurde.

flaskapp.py Code:

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello(): 
    return "hello" 

if __name__ == '__main__': 
    app.debug = True 
    app.run(host='0.0.0.0', port=80) 

flaskapp.wsgi:

import sys 
sys.path.insert(0, '/var/www/html/flaskapp') 

from flaskapp import app as application 

Und schließlich die Datei 000-default.conf

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName myServerHostname 
    DocumentRoot /var/www/ 
    WSGIDaemonProcess flaskapp threads=5 
    WSGIScriptAlias//var/www/html/flaskapp/flaskapp.wsgi 

<Directory flaskapp> 
    WSGIProcessGroup flaskapp 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
</Directory> 

    <Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
    </Directory> 
    <Directory /var/www/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
     # This directive allows us to have apache2's default start page 
       # in /apache2-default/, but still have/go to the right place 
       #RedirectMatch ^/$ /apache2-default/ 
    </Directory> 



    ErrorLog /var/log/apache2/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 
    ServerSignature On 


</VirtualHost> 

Ist dieser Code falsch? Was kann ich tun, um es zu beheben? Danke an alle!

Antwort

0

Ich löste dieses Problem mit Nginx anstelle von Apache. Ich benutzte die Beispielkonfiguration, die ich in der Flask-Dokumentation pdf mit gunicorn Webserver gefunden habe, einfachste Weg!

+0

Nun, das ist nicht die richtige Antwort auf die Frage, oder? –

+0

Natürlich ist es nicht, nur ein Workaround, ich werde meine Antwort bearbeiten, um klarer zu sein –

0

einfachste Weg, eine grundlegende Flask App om EC2 laufen:

1) application = app = Flask (- Name - wie üblich unterstreichen) .... .... application.run()

2) speichern Sie die Datei als "application.py"

3) Zip das Projekt mit requirement.txt und laden Sie die Zip-Datei durch AWS EB concole.

Es wird ausgeführt.