Seite 1 von 1
Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Mittwoch 3. Oktober 2018, 21:30
von Septias
Hallo,
ich hab mit Hilfe dieses Tutorials
https://uwsgi-docs.readthedocs.io/en/la ... nginx.html meine Webseite mit Hilfe von uwsgi und Nginx für Port 8000 eingerichtet. Wie kann ich es jetzt einrichte, dass ich ohne einen Port anzugeben auf meine Webseite komme ? Ich habe schon den listen-Port auf 80 gewechselt, was aber leider nichts bringt...
Wie kann ich das machen ?
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Mittwoch 3. Oktober 2018, 22:45
von __blackjack__
@Septias: Den `listen`-Port auf 80 zu setzen sollte aber was bringen. Du hast danach auch den Webserver neu gestartet, damit der die Konfiguration auch übernimmt?
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 07:47
von Septias
Ne, Neustarten bringt leider nichts. Da ich die Index-seiten aus /var/www/html gelöscht habe wir da jetzt nur 403 - Forbidden angezeigt. Bei Zugriff auf :8000 wird "Unable to connect" gesagt.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 08:40
von __deets__
Wie sieht denn die nginx.conf aus?
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 09:45
von Sirius3
Du hast also gleichzeitig noch einen Apache-Server am Laufen?
Was sagen denn die Logs?
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 14:23
von Septias
Als ich mich jetzt noch einmal angemeldet habe hat es funktioniert... warum weiß ich jedoch nicht.
Trotzdem Danke für die Hilfe
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 18:52
von Septias
Okay, jetzt gibt es einen echt komischen Fehler. Vorhin habe ich geschrieben, dass es funktioniert, weil ich von einem Ubuntu Computer aus darauf zugreifen kann. Das selbe Gild für mein Handy und Edge. Aber bei Firefox bekomme ich ein 403 - Forbidden. Warum ??
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 19:07
von Sirius3
Wir kennen Dein Netzwerk, Deine Konfigurationen, Dein Betriebssystem nicht.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 21:11
von Septias
Das liegt glaub nicht an meinem System zuhause, es bekommen alle Möglichen Leute 403 - Forbidden. Kann es sein, dass manche Requests noch an Apache2 geleitet werden ? Anders kann ich mir es irgendwie nicht vorstellen.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 21:14
von __blackjack__
@Septias: Wenn der Apache auf Port 80 horcht dann nicht nur manche Anfragen sondern alle. Wenn er nicht auf Port 80 horcht, dann eigentlich eher nicht. Du kannst ihn ja einfach mal beenden und schauen was dann passiert. Der Apache kann mit eventuellen Fehlern dann ja nichts mehr zu tun haben, wenn er nicht läuft.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 21:23
von Septias
Okay, hatte keine Ahnung, welche Einstellung bei vorinstalliertem Apache für Froxlor gemacht sind, deshalb die Frage. Der Apacheserver war aber die ganze Zeit aus.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 21:32
von Septias
Könnte das den Zugriff verweigern, weil die User zu groß sind ? : client_max_body_size 75M;
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Donnerstag 4. Oktober 2018, 21:42
von Sirius3
Hast Du mal nachgelesen, was `client_max_body_size` bewirkt?
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Freitag 5. Oktober 2018, 20:32
von nezzcarth
Du kannst du dir ja mal als root mit 'netstat -tlpn'/'ss -tlpn' anzeigen lassen, ob da etwas auf Port 80 lauscht und was.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Samstag 6. Oktober 2018, 13:25
von Septias
Wenn ich 'ss -tlpn' verwende wird mir für Port 80 das hier angezeigt:
Code: Alles auswählen
LISTEN 0 128 :::80 :::* users:(("nginx",pid=21872,fd=7),("nginx",pid=21871,fd=7),("nginx",pid=21870,fd=7),("nginx",pid=21869,fd=7),("nginx",pid=21868,fd=7))
Ist es normal, dass da mehrere Nginx-Einträge sind ?
Aber das ist nichtmal das Wichtige, weil ich jetzt weiß, warum es nicht funktioniert. Der Fehler ensteht, weil Firefox irgendwie auf /var/www/html zugreifen will, und die anderen Browser nicht. Deshalb dann der 403, weil der Server keine Berechtigung für das Verzeichnis hat.
Das hier steht dabei in dem Log:
Code: Alles auswählen
2018/10/06 14:17:26 [error] 21872#0: *1 directory index of "/var/www/html/" is forbidden, client: ***.19.***.155, server: _, request: "GET / HTTP/1.1", host: "www.example.de"
Wie kann ich das beheben ?
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Samstag 6. Oktober 2018, 14:02
von nezzcarth
Septias hat geschrieben: Samstag 6. Oktober 2018, 13:25
Ist es normal, dass da mehrere Nginx-Einträge sind ?
Ja. Es gibt einen Master Prozess und mehrere Worker.
Der Fehler ensteht, weil Firefox irgendwie auf /var/www/html zugreifen will, und die anderen Browser nicht. Deshalb dann der 403, weil der Server keine Berechtigung für das Verzeichnis hat.
Firefox kommt nicht von alleine auf die Idee, diesen Pfad (einen absoluten Pfad auf dem Server) anzufordern. Firefox wird von irgendeiner Stelle
mitgeteilt, z.B. über einen HTTP-Redirect, dass es diesen Pfad anfordern soll. Das deutet auf einen Konfigurationsfehler hin.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Samstag 6. Oktober 2018, 14:27
von Sirius3
Wir kennen Deine Konfiguration nicht! Wenn Du mit Firefox auf / zugreifst, dann sollte das keinen Unterschied machen, wie wenn Du mit Chrome auf / zugreifst.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Samstag 6. Oktober 2018, 18:54
von Septias
Also das hier ist meine Konfigdatei:
Code: Alles auswählen
# mysite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name dreiecksturnier.de; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /home/dreiecksturnier/webseite/dreiecksturnier-webseite/dreiecksturnier/media; # your Django project's media files - amend as required
}
location /static {
alias /home/dreiecksturnier/webseite/dreiecksturnier-webseite/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /home/dreiecksturnier/webseite/uwsgi_params; # the uwsgi_params file you installed
}
}
Das hier meine uwsgi_params:
Code: Alles auswählen
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
und an der normalen Serverkonfiguration habe ich nichts geändernt. Also kann ich mir kaum vorstellen, warum ich solche Fehler bekomme. Kann es irgendwie sein, dass Apache2 irgendwelche Konfigurationen geändert hat ? (Sry habe keine Ahung von Linux)
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Samstag 6. Oktober 2018, 19:44
von nezzcarth
<deine-domain>.de und www.<deine-domain>.de sind zwei verschiedene Dinge. Hast du daran beim Aufruf gedacht? Das scheint das Problem zu sein. In deiner Konfiguration sehe ich nur die Variante ohne www, du musst diese Subdomain bei 'server_name' mit aufführen, wenn du sie verwenden möchtest.
Re: Django-webseite mit Nginx auf port 80 anzeigen
Verfasst: Samstag 6. Oktober 2018, 20:10
von Septias
Ja, das war es, vielen vielen Dank !