Nginx shows warning when running nginx -t: nginx: [warn] protocol options

Started by mahesh, Dec 03, 2024, 07:20 AM

Previous topic - Next topic

mahesh

Question
Nginx shows warning when running nginx -t: nginx: [warn] protocol options redefined for 203.0.113.2
Symptoms
The following warning shows up when running nginx -t via 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 successful

  • Server preference http2 is enabled:
#plesk bin http2_pref --status
Enabled

  • Running command plesk bin http2_pref --enable may 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
Please consider updating your server:
Workaround
If update is not possible for some reason you may try the following

workaround
Use Event Handlers to update nginx configuration files:

1.Connect to the server via SSH

2.Create and Edit file /root/update_nginx.sh that 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
fi
3.Set executable permissions to the script:

#chmod +x /root/update_nginx.sh
4.Log into Plesk

5.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
6.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