The core issue is that the nginx is starting before the IPv6 address is bound.
systemd-networkd has a specific service, systemd-networkd-wait-online.service, that will force all online services to wait until the network interfaces are configured. After switching to systemd-networkd from ifupdown, nginx now comes up reliably. I'm not sure if this is a bug in nginx. It may be worth an addition to the documentation about this potential issue. -- JP
signature.asc
Description: This is a digitally signed message part.