
Ich habe ein Django-Projekt, das auf einem Entwicklungsserver lief, und versuche, es auf einen Ubuntu-Produktionsserver zu verschieben. Ich habe mit scheinbarem Erfolg ein "python manage.py run_gunicorn 0.0.0.0:8000" gestartet, aber meine Versuche, über einen normalen Browser eine Verbindung herzustellen, zeigtenhttp://JonathansCorner.com:8000/laufen ab. (Wenn ich „telnet localhost 8000“ manuell ausführe und eine GET-Anfrage gebe, wird entsprechendes HTML ausgedruckt.) UFW ist deaktiviert.
Was kann ich tun, um Gunicorn von außen auf Port 80 verfügbar zu machen?
Antwort1
Ich möchte Sie auf drei Dinge aufmerksam machen:
Erstens, was Ihre Firewall betrifft, sieht es so aus, als ob SieTuneine Firewall irgendeiner Art aktiviert haben, da Port 8000 „gefiltert“ ist:
~ nmap jonathanscorner.com -p 8000
Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-14 09:53 CST
Nmap scan report for jonathanscorner.com (54.218.143.2)
Host is up (0.10s latency).
rDNS record for 54.218.143.2: ec2-54-218-143-2.us-west-2.compute.amazonaws.com
PORT STATE SERVICE
8000/tcp filtered http-alt
Zweitens sieht es so aus, als ob dies auf EC2 läuft. In diesem Fall müssen Sie Ihre Sicherheitsgruppe ändern, um diesen Datenverkehr zuzulassen.
Drittens ist es normalerweise keine gute Idee, Gunicorn direkt verfügbar zu machen. Lassen Sie Gunicorn zuhören localhost:8000
(wie Sie es tun) und verwenden Sie dann einen geeigneten Webserver, um Anfragen an Gunicorn weiterzuleiten.
Installieren Sie beispielsweise nginx und habenEsHören Sie auf Port 80 und leiten Sie dann Anfragen per Proxy an Gunicorn weiter localhost:8000
.