- Plesk for Linux
On iOS/MacOS devices, when accessing a website a blank page is shown or the following error is shown:
CONFIG_TEXT: The operation couldn’t be completed. Protocol error
Nginx is configured as proxy server in Domains > example.com > Apache & nginx settings > Proxy Mode
Accessing a website from Debian/Ubuntu command line returns an error similar to below one:
# curl -vvv -k -L -I example.com
* http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1, name: [upgrade], value: [h2,h2c]
* HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
* stopped the pause stream!
* Connection #1 to host example.com left intact
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
Issue is caused by Apache bug 59311: when
http2 module is enabled both for Apache and Nginx, Apache sends an incorrect header to Nginx. When Nginx used as proxy, it passes this invalid header further to browsers causing them to refuse the connection.
In order to track the impact of this behavior, the Plesk internal request with ID PPPM-12381 has been created.
http2is enabled both for Apache and Nginx is not supported: when Nginx acts as a proxy, it only interacts with the browsers.
To work around this issue, consider one of the following options:
Click on a section to expand
- Log in to Plesk GUI
- Go to Tools & Settings > Apache Web Server > Disable the module
http2> Click OK to apply the changes
Connect to the server via SSH
Run the following command:
# echo "proxy_hide_header upgrade;" > /etc/nginx/conf.d/safari_fix.conf && systemctl restart nginx