You can easily configure IPv6 under nginx as follows. First, make sure IPv6 networking is working properly. See IPv6 CentOS / RHEL, FreeBSD, Debian / Ubuntu Linux, and Novell Suse/OpenSUSE Linux network configuration for more info.
Compile Nginx With IPv6 Support
You need to pass the –with-ipv6 option to configure command. Type the following command to compile it, enter:
cd /path/to/nginx-src-code/
./configure –without-http_autoindex_module –without-http_userid_module \
–without-http_auth_basic_module –without-http_geo_module \ –without-http_fastcgi_module –without-http_empty_gif_module \ –with-poll_module –with-http_stub_status_module \ –with-http_ssl_module –with-ipv6
make install
Verify the same with the following command:
/usr/local/nginx/sbin/nginx -V
Sample outputs:
nginx version: nginx/0.8.46 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48) TLS SNI support disabled configure arguments: –without-http_autoindex_module –without-http_userid_module –without-http_auth_basic_module –without-http_geo_module –without-http_fastcgi_module –without-http_empty_gif_module –with-poll_module –with-http_stub_status_module –with-http_ssl_module –with-ipv6 Make sure you pass options as per your setup.
Edit Configuration File
Edit /usr/local/nginx/conf/nginx.conf, enter:
vi /usr/local/nginx/conf/nginx.conf
Make sure listen directive is updated as follows (this must be placed between server { … } ) :
listen to all IPv4 and IPv6 interfaces:
ipv4
listen :80;
ipv6
listen [::]:80;
Reload and restart nginx configuration, enter:
/usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload
How Do I Listen Only On 2607:f0d0:1002:59::2?
Edit config file as follows: listen listen [2607:f0d0:1002:59::2]:80;
How Do I Verify IPv6 and IPv4 Both Are Working?
Use the netstat command to verify ip binding:
netstat -tulpna | grep nginx
Sample outputs:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 33094/nginx tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 33094/nginx tcp 0 0 :::80 :::* LISTEN 33094/nginx The last line indicates that IPv6 and first two line indicate HTTP and HTTPS connection for IPv4. You can also use the wget command or a web browser to verify the same: $ wget http://[0000:0000:0000:00::0]/