How do I configure IPv6 networking under nginx? How do I assign and use an IPv6 address under nginx web server? How do I enable IPv6 Support in nginx?
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://[2607:f0d0:1002:59::2]/
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 1 comment… read it below or add one }
Hi,
is NGINX able to acct as a reverseproxy and send client requests to backendserver with IPV6-adresses (client -> IPV4 -> NGINX -> IPV6 -> backendserver)?
Greetings