Safari can't open the page. The error is the operation couldn't be completed. Protocol error. (NSPOSIXErrorDomain:100)

spiros · 1 · 2714

spiros

  • Administrator
  • Hero Member
  • *****
    • Posts: 823193
    • Gender:Male
  • point d’amour
Safari can't open the page. The error is the operation couldn't be completed.
Protocol error. (NSPOSIXErrorDomain:100)


I had the above error when viewing pages of my sites with Safari or iOS. My VPS had the cpnginx plugin, so that I could use nginx via the WHM and Control Panel. By disabling cpnginx the sites displayed fine in Safari, so that confirmed the culprit.

Another issue I had, but could not link with this one until recently, is flooding requests from Safari browsers, resulting in extremely slow performance (checking browser stats on Cpanel's AWStats, I could see that Safari accounted for 73% and Chrome for 9% of page views, pretty irregular traffic).

Searching, I found these, it appears that hiding the Upgrade header in config resolves it. So I created a new Vhost template through WHM and added the line:

Code: [Select]
proxy_hide_header Upgrade;
inside the location / { } block.

This issue with "Upgrade" header in Nginx vs. Safari took me about 10-12 hours to debug :( Safari on MacOS/iOS retried a lot of requests on our website and did DoS attack. Retry-logic in Safari is very aggresive (for example, 500 requests to same URL in 10-15 seconds)
Hide Upgrade header by default for clients, please. It's very difficult to discover reason of this dangerous behavior.
https://trac.nginx.org/nginx/ticket/915

After much research and testing it turned out that I needed to hide the Upgrade header in my config. proxy_hide_header Upgrade;
Read more here: https://trac.nginx.org/nginx/ticket/915
https://stackoverflow.com/questions/37762163/safari-fails-to-give-response-when-using-http-2
« Last Edit: 07 Feb, 2018, 19:33:08 by spiros »


 

Search Tools