I tested nginx-quic https://quic.nginx.org/README for HTTP/3 over QUIC using quictls openssl 1.1.1q forked library and ran into an interesting error for non-HTTPS nginx vhost configurations. If non-HTTPS nginx vhost doesn't specifically list the listen directive for port 80, I get this error when running nginx -t config check
nginx: [emerg] socket() 0.0.0.0:80 failed (94: Socket type not supported)
server {
server_name domain.com www.domain.com;
}
but if I specifically list the listen directive no error
server {
listen 80;
server_name domain1.com www.domain1.com;
}
Nginx was built on CentOS 7 with GCC 11.2.1 and quictls openssl 1.1.1q
nginx -V
nginx version: nginx/1.23.2 (011122-105436-centos7-d9e494b-br-6e975bc)
built by gcc 11.2.1 20220127 (Red Hat 11.2.1-9) (GCC)
built with OpenSSL 1.1.1q+quic 5 Jul 2022
TLS SNI support enabled
This seems to only be an issue with nginx-quic built Nginx versions. If I build a regular Nginx version without nginx-quic/quictls the non-HTTPS vhost with no listen directive specifically listed for port 80 works fine and has been the expected case since I started using Nginx ~11yrs ago.
So with nginx-quic, does the assumption that server{} contexts without a specifically mentioned listen port, no longer default to port 80?