docker-nginx-http3
docker-nginx-http3 copied to clipboard
HTTP/3 not works and fallback to HTTP/2
Config
static.conf
server {
listen 443 http3 reuseport;
listen 443 ssl http2;
server_name _;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/fullchain.pem;
# Enable all TLS versions (TLSv1.3 is required for QUIC).
ssl_protocols TLSv1.3;
# 0-RTT QUIC connection resumption
ssl_early_data on;
# Add Alt-Svc header to negotiate HTTP/3.
add_header alt-svc 'h3-27=":4300"; ma=86400, h3-28=":4300"; ma=86400, h3-29=":4300"; ma=86400';
add_header QUIC-Status $http3; # Sent when QUIC was used
# resolver 127.0.0.11;
autoindex off;
root /usr/share/nginx/html;
index index.html;
# limit_req zone=perip burst=5 nodelay;
# limit_req_status 460;
# limit_conn perserver 5;
# limit_rate 10240k;
}
docker-compose.yml
version: "3.8"
services:
ssb-http3:
image: macbre/nginx-http3
container_name: docker-ssb-demo
restart: always
ports:
- "0.0.0.0:4300:443/tcp"
- "0.0.0.0:4300:443/udp"
environment:
- "NODE_ENV=development"
networks:
- demo-connect
volumes:
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/static.conf:/etc/nginx/conf.d/static.conf:ro
- ./static:/usr/share/nginx/html
- ./ssl:/etc/nginx/ssl
networks:
demo-connect:
driver: bridge
Checks
ubuntu@ubuntu-vm:~/Documents/ssb$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------
docker-ssb-demo nginx -g daemon off; Up 0.0.0.0:4300->443/tcp, 0.0.0.0:4300->443/udp, 8080/tcp, 8443/tcp
ubuntu@ubuntu-vm:~/Documents/ssb$ docker run -it --rm ymuski/curl-http3 curl -ILv https://localhost.dalisoft.uz:4300 --http3
* Trying 127.0.0.1:4300...
* Connect socket 5 over QUIC to 127.0.0.1:4300
* Sent QUIC client Initial, ALPN: h3-29,h3-28,h3-27
* quiche: recv() unexpectedly returned -1 (errno: 111, socket 5)
* connect to 127.0.0.1 port 4300 failed: Connection refused
* Failed to connect to localhost.dalisoft.uz port 4300: Connection refused
* Closing connection 0
curl: (7) quiche: recv() unexpectedly returned -1 (errno: 111, socket 5)
ubuntu@ubuntu-vm:~/Documents/ssb$
Environments
-
docker
macbre/nginx-http3
latest
-
os
ubuntu
22.04
(amd64)
Expected Result
HTTP/3 responses
Actual Result
![Screenshot 2022-12-25 at 14 20 54](https://user-images.githubusercontent.com/3511344/209462745-0d501207-cdf6-46e7-be8a-0b181bc03958.png)