nginx-quic socket() 0.0.0.0:80 failed (94: Socket type not supported)

George nginx-forum at forum.nginx.org
Tue Nov 1 12:19:15 UTC 2022


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?

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,295642,295642#msg-295642



More information about the nginx mailing list