Nginx Error 499

Bon, depuis hier soir, je suis confronté à cette erreur 499 quand un browser graphique cherche à se connecter à mon blog.

Hors, avec curl, cela répond correctement !

Si quelqu’un avait une suggestion !?

Merci d’avance.

Apparement ton serveur mets beaucoup trop de temps à répondre et du coup ton client ferme la connexion, d’ou l’erreur 499.

Alors, qu’avec Curl, c’est immédiat !
C’est quoi ce binz ?


499 client has closed connection nginx : Le client a fermé la connexion avant de recevoir la réponse. Se produit quand le traitement est trop long côté serveur.

Regarde tes logs ! Tu y verra surement la différence entre les 2. Ça met combien de temps avant de te sortir l’erreur ?

C’est immédiat !!!

À peine, j’ai demande le ndd, le client ferme la connexion !!!

Tes logs t’en diront un peu plus … sans ça, ça va être difficile de t’aider.

192.168.xyz.abc - - [27/Apr/2016:13:40:24 +0200] 499 "GET / HTTP/1.1" "Request-Length:742" "Request-Time:0.010" 0 "UA:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0" "Referrer:-" "Gz-Ratio:-""Conn-Serial-Number:1466" "Request-Nb-Current:1"
83.192.94.242 - - [27/Apr/2016:13:45:43 +0200] 499 "GET / HTTP/1.1" "Request-Length:441" "Request-Time:0.065" 0 "UA:Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.7.1" "Referrer:-" "Gz-Ratio:-""Conn-Serial-Number:1707" "Request-Nb-Current:1"
83.192.94.242 - - [27/Apr/2016:13:46:30 +0200] 499 "GET / HTTP/1.1" "Request-Length:441" "Request-Time:0.064" 0 "UA:Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.7.1" "Referrer:-" "Gz-Ratio:-""Conn-Serial-Number:1756" "Request-Nb-Current:1"

Désolé, mimoza, je n’ai vraiment pas la forme en ce moment - donc, si je te paraits un peu lent ne m’en veut pas !

Je n’ai rien dans mes logs ‘slow.log’, ‘php_errors.log’ …
les tests ‘nginx -t’, et ‘php5-fpm -t’ me répondent ‘ok’

T’inquiète pour le temps de réponse … je vais bientôt reprendre le boulot donc je ne te répondrais plus aussi rapidement.

Sinon pour tes logs il n’y a pas grand chose … c’est un peu bizarre. Il faut augmenter un peu le niveau des logs et comparer avec un requête Curl.

Pour mes logs, j’ai déclaré ceci, dans mon contexte ‘http’ :

##
# Logging Settings
##

log_format cache '$remote_addr - $remote_user [$time_local] "$request" ' '$status $upstream_cache_status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
log_format compression '$remote_addr - $remote_user [$time_local] ' '$status "$request" "Request-Length:$request_length" "Request-Time:$request_time" $body_bytes_sent ' '"UA:$http_user_agent" "Referrer:$http_referrer" "Gz-Ratio:$gzip_ratio"' '"Conn-Serial-Number:$co$

access_log /var/log/nginx/access.log compression if=$loggable;
error_log /var/log/nginx/error.log;

Puis dans le contexte ‘server’ :

access_log  /div_www/blog.stephane-huc.net/logs/access.log compression if=$loggable;
    error_log   /dir_www/blog.stephane-huc.net/logs/errors.log;

Log error au niveau info donne :

2016/04/27 14:14:42 [notice] 24339#0: *2635 "^(blog.stephane-huc.net|www.blog.stephane-huc.net)$" matches "blog.stephane-huc.net", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [notice] 24339#0: *2635 "^(GET|HEAD)$" matches "GET", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [notice] 24339#0: *2635 "^(blog.stephane-huc.net|www.blog.stephane-huc.net)$" matches "blog.stephane-huc.net", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [notice] 24339#0: *2635 "^(GET|HEAD)$" matches "GET", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [notice] 24339#0: *2635 ".+" does not match "", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [notice] 24339#0: *2635 "^(GET|HEAD)$" matches "GET", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [notice] 24339#0: *2635 "nocache" does not match "/", client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [info] 24339#0: *2635 key: "blog.stephane-huc.net/" was not found by memcached while reading response header from upstream, client: 192.168.xyz.abc, server: blog.stephane-huc.net, request: "GET / HTTP/1.1", upstream: "memcached://127.0.0.1:11211", host: "blog.stephane-huc.net"
2016/04/27 14:14:42 [info] 24339#0: *2635 SSL_read() failed (SSL: error:140943F2:SSL routines:SSL3_READ_BYTES:sslv3 alert unexpected message:SSL alert number 10) while processing SPDY, client: 192.168.xyz.abc, server: 0.0.0.0:443

Pour memcache :

#netstat -talune -p | grep "memcache"
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      106        28241       14425/memcached 
udp        0      0 127.0.0.1:11211         0.0.0.0:*                           106        28242       14425/memcached

Quand je vais sur ton blog j’ai le code d’erreur suivant :
SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET

Il me semble que tu peux ajouter le mode «debug» en fin de ligne de «access/error_log» pour avoir plus de détail.
http://nginx.org/en/docs/debugging_log.html

Tu l’obtiens, comment ce code ?

Logs erreurs en niveau info restituent ca :

2016/04/27 15:45:37 [info] 24339#0: *2768 SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking, client: 178.238.231.146, server: 0.0.0.0:443
2016/04/27 15:45:37 [info] 24339#0: *2769 SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking, client: 178.238.231.146, server: 0.0.0.0:443
2016/04/27 15:48:28 [info] 24339#0: *2771 SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking, client: 144.76.29.66, server: 0.0.0.0:443
2016/04/27 15:48:32 [info] 24339#0: *2772 SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking, client: 144.76.29.66, server: 0.0.0.0:443
2016/04/27 15:50:45 [info] 24339#0: *2774 SSL_read() failed (SSL: error:140943F2:SSL routines:SSL3_READ_BYTES:sslv3 alert unexpected message:SSL alert number 10) while processing SPDY, client: 37.160.197.44, server: 0.0.0.0:443

C’est fou … je navigue dessus, en mode console, avec elinks !!!
Ahhh, ça bogue avec elinks :

2016/04/27 16:00:31 [info] 24339#0: *2836 key: "blog.stephane-huc.net/?" was not found by memcached while reading response header from upstream, client: 192.168.xxx.aaa, server: blog.stephane-huc.net, request: "GET /? HTTP/1.1", upstream: "memcached://127.0.0.1:11211", host: "blog.stephane-huc.net"

Page vide !

Avec FF, c’est le message d’erreur qu’il me sort … rien de particulier.
J’ai l’impression que c’est ta config SSL qui n’est pas terrible,

En gros ils n’arrivent pas a se mettre d’accord avec le système d’échange de clée.
Base toi sur ce que cet outil te sort :
https://mozilla.github.io/server-side-tls/ssl-config-generator/

Bon, j’ai enlevé la déclaration ‘defaut_serveur’ dans mon contexte ‘server’ du domaine ‘stephane-huc.net’.

J’ai modifié le contexte ‘server’ du blog, pour qu’il ne s’affiche plus, pour l’instant qu’en HTTP.
J’ai modifié mes déclarations d’entêtes, pour commenter ma gestion HTTPS STS …
Normalement, le blog ne doit s’afficher qu’en HTTP

Curl le comprend très bien.
FF, Opera n’en font qu’à leur tête et maintenant redirige vers HTTPS vers mon sous-domaine ‘apt’ …
Alors que je n’ai écrit aucune redirection HTTPS de blog vers apt …

Pfff && Grrrr …

Si tu pouvais nous mettre ton fichier de conf Nginx pour ce domain on y verrais un peu plus clair (anonymise si tu veux).
Mais en gros il faudrait que tu commente toute la partie HTTPS le temps de voir si le HTTP est ok.

Le fichier principal au domaine ‘blog’ :

https://paste.debian-fr.xyz/?75f4e25a07d01b1e#DTL8lbiS3Hi5lePnilMEOLMrwg74E5iF0XMtnDvXUFI=


Le contenu du fichier ‘/etc/nginx/cfg/blog/port_http.cfg’ :

listen 80;
listen [::]:80;

Le contenu du fichier ‘/etc/nginx/cfg/blog/headers.cfg’ :

https://paste.debian-fr.xyz/?50b308a160467374#e+S+5Ve1KL1UuOwkOzi5lT6HoJVHGfkrBUsR/eXbWac=

On remarquera principalement que l’entête HTTP STS est bien commentée !


Le contenu du fichier /‘etc/nginx/cfg/blog/php.cfg’ :

https://paste.debian-fr.xyz/?d653f79a6947d3ae#ZXzKhgOAunT7b/QRMj6QW4fzrhkZTpkEobzWoElfCMI=

Voilà, j’espère qu’il y a l’ensemble …

###########
### SSL cfguration
###########

include /etc/nginx/cfg/blog/ssl.cfg;

Donc il semble bien que tu ais désactivé complètement HTTPS … bizarre que FF essaye d’y accéder quand même.
Là je commence a sécher :unamused:

D’autant que si je te montre le fichier relatif au sous-domaine ‘apt’, tu verras qu’il n’y a aucune redirection demandée pour le sous-domaine ‘blog’ !!!

Tout est compartimenté dans ses propres fichiers de configuration, aucun lien ‘ln’ qui dirige d’un sous-domaine à un autre …

J’en perds tout autant mon latin …
Comme quoi, l’informatique, quand ça se détraque, c’est pas pour rien ! :frowning:

Je ne comprends pas pourquoi ‘nginx’ se permet d’agir ainsi … qu’il se permet de rediriger un sous-domaine HTTPS vers un autre, alors qu’il n’est pas déclaré/écrit !!!

Il reste la méthode fastidieuse … repart d’une config vierge ou que tu sais fonctionnel et ajoute petit a petit les changements :sleepy:

Est-ce que tu y as accès, là, stp ?

C’est bon :thumbsup:
C’était quoi le soucis ?