Symptoms
The following warning shows up when running
nginx -tvia CLI:# nginx -t
nginx: [warn] protocol options redefined for 203.0.113.2:443 in /etc/nginx/plesk.conf.d/vhosts/example.com.conf:7
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulServer preference http2 is enabled:
# plesk bin http2_pref --status
EnabledPreferred domain is set to example.com in Domains > example.com > Hosting & DNS > Hosting
Running command
plesk bin http2_pref --enablemay fix the warning temporarily, but will show up again.
Cause
Product issue:
- PPPM-14042 "Enabling HTTP/2 no longer results in the 'protocol options redefined' warning."
Fixed in:- Plesk Obsidian 18.0.54 18 July 2023 (Linux)
Resolution
Workaround
If update is not possible for some reason you may try the following
workaround
Use Event Handlers to update nginx configuration files:
Connect to the server via SSH
Create and Edit file
/root/update_nginx.shthat will be used by the Event Handler:#!/bin/bash
vhostDir=$(grep VHOST /etc/psa/psa.conf | awk {'print $2'})
if [ ! -z "$vhostDir" ] ; then
sleep 15
find $vhostDir/system/*/conf -type f -name "nginx.conf" | xargs -i sed -i '/http2/!s/(listen [0-9.]*:443 ssl)/1 http2/' {}
find /etc/nginx/plesk.conf.d/webmails/ -type f -name "*.conf" | xargs -i sed -i '/http2/!s/(listen [0-9.]*:443 ssl)/1 http2/' {}
find /etc/nginx -type f -name "*.conf" | xargs -i sed -i '/http2/!s/(listen [0-9.]*:443 ssl)/1 http2/' {}
else
echo "Vhost DIR fetch failed. Exiting ..." && exit 0
fiSet executable permissions to the script:
# chmod +x /root/update_nginx.sh
Create Event Handler by going to Tools & Settings > Event Manager > Add Event Handler and add the following details:
- Event: Physical hosting created
- Priority: 50
- User: root
- Command: /root/update_nginx.sh
Repeat step 5 for Event: Physical hosting updated
Optionally it is possible to force the nginx configuration files update immediately by running the script manually once:
# /root/update_nginx.sh