martes, 1 de junio de 2021

Protocol error (NSPOSIXErrorDomain:100)



Cómo solucionar: The operation couldn’t be completed. Protocol error (NSPOSIXErrorDomain:100).



Tras pasar un dominio por un NGINX actuando como reverse proxy y Apache tras el proxy actuando como web server, me comentó alguien que la web no se veía en el navegador Safari sobre MacOS / iOS.

Al acceder al sitio web, el navegador mostraba el siguiente error:


The operation couldn’t be completed. Protocol error (NSPOSIXErrorDomain:100)

Como decía, cuando NGINX se usa como proxy inverso con Apache como back-end, este obtiene recursos de Apache usando HTTP/1.1, que el servidor back-end intenta actualizar a HTTP/2 enviando el encabezado "Upgrade: h2". Como la conexión ya está establecida en HTTP/2, falla.

Para evitar ver este error y mostrar la web de turno correctamente, podemos usar el siguiente parámetro en el archivo nginx.conf o en un include al mismo:

proxy_hide_header Upgrade;

Tras esto, bastará con hacer un reload de la configuración de NGINX y la web ya será accesible desde Safari sobre MacOS o iOS de Apple.


Fuentes:

https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header
https://trac.nginx.org/nginx/ticket/915
https://megamorf.gitlab.io/2019/08/27/safari-nsposixerrordomain-100-error-with-nginx-and-apache/
0

0 comentarios:

Publicar un comentario