Hello @rherold thanks a lot for participating in the community.
very interesting and thanks a lot for the detailed logs, nonetheless i cannot reproduce the issue.
In my case the auto NAT of docker network works well if i directly access 127.0.0.1:9000 or if i use a docker jwilder proxy.
Do you confirm that a direct curl 127.0.0.1:9000 from the machine works as expected ?
My suspicion here is on the proxy_pass 127.0.0.1 which does not indicate IPv6 usage, could you replace it with [::] ?
Also could you clarify your setup on the reverse-proxy, i guess it is not installed with docker ?
in my case i use a docker jwilder proxy with :
error_log /var/log/nginx/error.log debug;
events {
worker_connections 1024;
}
http {
upstream backend {
server [2001:db8:3::91]:9000;
}
server {
listen 80;
listen [::]:80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
and if i IPv4 curl ‘http://127.0.0.1:8080’
i do see in my logs:
proxy-1 | 192.168.3.1 - - [24/Jun/2025:14:41:32 +0000] "GET / HTTP/1.1" 200 1698 "-" "curl/8.7.1"
proxy-1 | 2025/06/24 14:41:32 [info] 29#29: *15 client 192.168.3.1 closed keepalive connection
And from sonarqube:
2001:db8:3:0:0:0:0:3 - - [24/Jun/2025:14:41:32 +0000] "GET / HTTP/1.0" 200 - "-" "curl/8.7.1" "b0691181-4042-4a2a-b92c-dc6bf8edc140" 8
This indicates an IPv4 request to nginx, which then send IPv6 to sonarqube.
Happy to debug this further,
Regards,
Jérémy.