IPv4 & IPv6

Maxim Dounin mdounin at mdounin.ru
Sat Apr 6 10:39:05 UTC 2013


On Sat, Apr 06, 2013 at 02:25:54AM -0400, B.R. wrote:

> Hello,
> It seems I solved the problem...
> It was indeed by reading a little more carefully the doc
> http://wiki.nginx.org/HttpCoreModule#listen, thanks @Lukas! ;o)
> The '*:80' syntax is used for IPv4 listening, I don't understand why it
> works as-is for you Ted. Maybe Maxim will be of a better help on that case.
> It is said that the IPv6 syntax will make Nginx listen for the 6to4 IP
> address syntax, making the websites reachable through IPv4, even if no
> specific IPv4 binding exist for the listening sockets.
> Using:
> listen [::]:80;
> I have:
> $ sudo ss -lnp|grep nginx
> 0      128                           :::80
> :::*      users:(("nginx",***,11),("nginx",***,11))
> 0      128                           :::443
> :::*      users:(("nginx",***,12),("nginx",***,12))
> You shall *not* have 2 'listen' directive if you did not separate you IPv6
> and IPv4 stacks (with the sysctl net.ipv6.bindv6only directive set to 1).

This is wrong aproach and it will no longer work for you after 
1.3.x upgrade.  As I already suggested, use

   listen 80;
   listen [::]:80 ipv6only=on;

instead as a portable solution, which doesn't depend on a system 
configuration.  (In 1.3.x, the "ipv6only=on" part can be removed 
as it's now the default.)

Maxim Dounin

More information about the nginx mailing list