nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
Lord_Carlos
Beiträge: 4736
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von Lord_Carlos » 14.01.2020 17:24:22

Tach

Ich habe ein nginx webserver hier auf meinem Heimserver installiert.
Manchmal laedt die Seite nicht, keine Fehlermeldung. 20 Sekunden spaeter geht es dann ohne Probleme. Kurz danach geht es wieder von vorne los.
curl <https://URL> oder curl -i <https://URL> geht immer.

In den logs finde ich nichts. Da kommt erst was an wenn die Seite auch im browser angezeigt wird.

Das ganze macht es auch so schwer es zu debuggen.
Andere services gehen wunderbar. Torrent, ssh oder andere http server.

curl -i:

Code: Alles auswählen

HTTP/2 200
server: nginx/1.14.2
date: Tue, 14 Jan 2020 15:19:12 GMT
content-type: text/html
content-length: 251
last-modified: Thu, 18 Apr 2019 20:37:16 GMT
vary: Accept-Encoding
etag: "5cb8dffc-fb"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src: https: 'unsafe-inline'
strict-transport-security: max-age=31536000; includeSubDomains; preload
accept-ranges: bytes
nginx.conf NoPaste-Eintrag40960

sites-available/reeeeee.com.conf

Code: Alles auswählen

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name reeeeee.com;
        root /var/www/reeeeee.com/public;

        include nginxconfig.io/general.reeeeee.com;
}
(static HTML Datei. Aber auch reserve proxy mit proxy_pass hat genau das gleiche problem.)

nginxconfig.io/general.reeeeee.com

Code: Alles auswählen

# SSL
ssl_certificate /etc/letsencrypt/live/reeeeee.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/reeeeee.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/reeeeee.com/chain.pem;

# logging
access_log /var/log/nginx/reeeeee.com.access.log;
error_log /var/log/nginx/reeeeee.com.error.log warn;

include nginxconfig.io/general.conf;
nginxconfig.io/general.conf

Code: Alles auswählen

# security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;

#Disabled because of <redacted>
#add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
add_header Content-Security-Policy "default-src: https: 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;

# . files
location ~ /\.(?:!well-known|files) {
        deny all;
}

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

# robots.txt
location = /robots.txt {
        log_not_found off;
        access_log off;
}

# gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;
Ich koennte einfach zufaellig config sachen aendern, und am naechsten Tag wenn ich auf Arbeit bin gucken ob alles geht. Aber manchmal geht es ja auch so ohne Probleme. 🤷‍♀️

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
niemand
Beiträge: 13286
Registriert: 18.07.2004 16:43:29

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von niemand » 15.01.2020 10:15:23

Meine Gedanken dazu: auf der Zielmaschine mittels netstat oder lsof gucken, ob zeitnah ’ne eingehende Verbindung auftaucht, nachdem die Seite angefordert worden ist. Wenn ja: httpd auf Loglevel Debug setzen und gucken, ob sich nicht weitere Informationen finden lassen. Wenn nein: gucken, ob im (leider geheimgehaltenen) Browser so Mechanismen wie „safe browsing“ aktiv sind, bei denen Daten erstmal nach draußen geschaufelt werden, bevor die eigentliche Verbindung aufgebaut wird. Wenn nicht über die IP aufgerufen wird, auch mal den Weg der Namensauflösung prüfen. Auch mal gucken, ob’s nicht das alte IPv4 vs. v6-Problem ist.
non serviam.

Benutzeravatar
Lord_Carlos
Beiträge: 4736
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von Lord_Carlos » 15.01.2020 10:20:36

2452

Jetzt hier am morgen geht es fuer 20 sekunden, dann wieder nicht.
Curl geht immer.
SSH tunnel zum server, dann auf die Domain zugreifen geht auch.

wat?

Domain sollte auf meine oeffentliche IP Zeigen, aber router bounced das wieder zum Server wenn ich innerhalb des Netzwerkes bin. loop irgendwas nennt sich das.
Anderer http server Debianwebfs funktioniert.

Browser: Chrome, Firefox, Edge von win10

Domain geht mit anderen services, aber ich werde mal IP versuchen.
lsof / netstat guck ich gleich mal.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
Lord_Carlos
Beiträge: 4736
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von Lord_Carlos » 15.01.2020 12:50:42

Und seit 10 Uhr funktioniert alles.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
Lord_Carlos
Beiträge: 4736
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von Lord_Carlos » 16.01.2020 10:58:42

IP schein immer zu gehen.
http wahrscheinlich auch.
Ich habe 3 domains, von verschiedenen Anbietern. Aber alle 3 mit lets encrypt.
Die gehen teilweise nicht, aber von einander getrennt. Also kann sein da a.com gerade funktioniert aber b.com nicht.

Das wuerde denn auch erklaeren warum andere services funktionieren. Die benutzten nicht die https:// domains mit lets encrypt.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
mig
Beiträge: 120
Registriert: 26.02.2003 13:21:58
Wohnort: wien
Kontaktdaten:

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von mig » 16.01.2020 12:13:42

Hi

Nur ein Schnellschuss: Irgendwelche DNS Ausfälle-Verzögerungen in deinem Netz.
(unter Umständen auch beim Client von dem Du testest)

LG
Michael

Benutzeravatar
Lord_Carlos
Beiträge: 4736
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von Lord_Carlos » 16.01.2020 12:42:48

Client nicht, denn es sind verschiedene und alles was nicht https ist geht ja.
Intern geht https:// auch.

Ich habe jetzt auch mal ein resolver hinzugefuegt, hat auch nichts gebracht.

Kann mir irgendwie schon vorstellen das es DNS ist. Habe intern ein PiHole im docker, das ist nicht immer die beste Loesung.
Aber warum sollte es dann nicht von aussen gehen, und nur bei https und nur manchmal?
Edit: Und warum geht curl und wget?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
novalix
Beiträge: 1749
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von novalix » 16.01.2020 15:25:55

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 12:42:48
Aber warum sollte es dann nicht von aussen gehen, und nur bei https und nur manchmal?
Edit: Und warum geht curl und wget?
Damit das Problem nicht so trivial daherkommt. :mrgreen:
Du könntest zusätzlich mal mit dem s_client aus Debianopenssl die Verbindung testen.
https://www.thomas-krenn.com/de/wiki/TC ... r%C3%BCfen
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Benutzeravatar
Lord_Carlos
Beiträge: 4736
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von Lord_Carlos » 17.01.2020 10:47:28

novalix hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 15:25:55
Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 12:42:48
Aber warum sollte es dann nicht von aussen gehen, und nur bei https und nur manchmal?
Edit: Und warum geht curl und wget?
Damit das Problem nicht so trivial daherkommt. :mrgreen:
Du könntest zusätzlich mal mit dem s_client aus Debianopenssl die Verbindung testen.
https://www.thomas-krenn.com/de/wiki/TC ... r%C3%BCfen
ok. Spannend.
openssl s_client -connect c foo.com:https

In beiden situationen bekomme ich sofort das cert. die cain, post handshake session ticket etc.
Dann kann ich irgendein Buchstaben gefolgt von Enter senden und bekomme ein 400 BAD REQUEST wieder. Zu erwarten. Ich weis nicht was ich da tolles eingeben kann. Auch erstmal egal.
Aber in situationen wo es nicht funktioniert geht der erste teil mit handshake auch wunderbar, wenn ich aber was eingeben kommt nichts:

Wenn es nicht geht:

Code: Alles auswählen

---
read R BLOCK

q

s

read:errno=0
Sollte aber wohl eher so aussehen:

Code: Alles auswählen

---
read R BLOCK
d
HTTP/1.1 400 Bad Request
Server: nginx/1.14.2
Date: Fri, 17 Jan 2020 09:38:16 GMT
...

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
novalix
Beiträge: 1749
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von novalix » 17.01.2020 16:06:57

Gut ist, dass da kein saftiger SSL-Fehler kommt.
Schlecht ist, dass man immer noch nichts hat, wo man mit dem Finger drauf zeigen kann.

Entweder drückt da irgendwas immer mal wieder die Leitung ab, oder nginx zeigt ne sehr lockere Arbeitsdisziplin.

wget baut ja abgebrochene Verbindungen durchaus wieder auf, von curl wüsste ich das nicht.

Vielleicht mal auf Protokollebene mit dem guten alten http 1.1 probieren?
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

eggy
Beiträge: 2018
Registriert: 10.05.2008 11:23:50

Re: nginx manchmal nicht mit browser erreichbar, kurz danach geht es, curl geht immer.

Beitrag von eggy » 17.01.2020 18:21:10

DNS mitschneiden. Evtl kannst damit nur ausschließen, dass wget/curl anders auflösen als der Browser. Aber das wäre auch schonmal nen Schritt in die richtige Richtung.

Antworten