Tags: , , , , , , , 1,076, Posted in 網際網路 2 条留言

前几天Burst西海岸的VPS开售了,于是21一个鸡冻就入了一个最低配的,看样子貌似我是第14个客户……
由于Burst在主机配置里面提到了提供IPv6地址,于是昨天发了ticket请求设置,今早来看已经给我设了4个v6的地址,但是默认安装默认配置的Apache2并不支持IPv6的访问,于是萌生了整理一下各主流Web Server启用IPv6方式访问的设置,其实都不复杂。

21个人喜欢nano编辑器,如果你喜欢vi,稍微换一下命令就行。
如果提示

1
bash: nano: command not found

请如下操作

1
2
Debian/Ubuntu: sudo apt-get install nano
CentOS/Fedora: yum install nano

高快直达:1. Apache 2 / 2. Nginx / 3. Lighttpd / 4. IIS 6/7

Apache 2

一般使用系统超级牛力apt-get或者yum安装的Apache2都支持了IPv6,只是默认的配置里面不支持,设置办法如下:

1
2
3
4
5
nano /etc/apache2/port.conf
或
nano /etc/httpd/conf/httpd.conf
或
nano /etc/apache2/apache2.conf

打开nano编辑器后,按Ctrl+W搜索Listen,之后将其修改为如下格式

1
2
Listen 0.0.0.0:80
Listen [::]:80

然后按Ctrl+O保存,按Ctrl+X退出。之后重启apache2的服务便可:

1
2
Debian/Ubuntu: invoke-rc.d apache2 restart 或 invoke-rc.d httpd restart
CentOS/Fedora: service apache2 restart 或 service httpd restart

Nginx

Nginx的话,需要查看一下是否启用了IPv6的支持,在shell输入

1
2
3
4
5
localhost:/usr/local/nginx/sbin# ./nginx -V
nginx version: nginx/0.7.67
built by gcc 4.3.2 (Debian 4.3.2-1.1)
TLS SNI support enabled
configure arguments: --with-ipv6 --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module

然后查看输出的信息是否包含了–with-ipv6字眼,如果没有,那很遗憾,需要重新编译(请参阅这里这里)或者卸载掉当前的Nginx使用LNMP最新版本,如果有,那么继续:
找到你的nginx配置文件,可以使用如下命令

1
2
localhost:~# whereis nginx.conf
nginx: /usr/local/nginx

然后编辑该文件

1
nano /usr/local/nginx/nginx.conf

在Server配置段里面寻找Listen增加对IPv6的监听,增加一句listen [::]:80;修改为如下大概效果:

1
2
3
4
5
server
        {
                listen       80;
                listen  [::]:80;
                server_name mr21.in www.mr21.in;

如果想要仅仅监听IPv6而忽略IPv4请求,可以增加ipv6only=on的参数:

1
listen [::]:443 default ipv6only=on;

如果监听某个特定的IPv6地址,这样

1
listen [2607:f0d0:1004:2::2]:80;

诸如此类,以此类推,之后重启你的Lihttpd即可。

1
2
Debian/Ubuntu: invoke-rc.d nginx restart
CentOS/Fedora: service nginx restart

Lighttpd

首先,要先确认你的Lighttpd是否支持IPv6,在终端输入lighttpd -V,查看是否有IPv6 support字样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# lighttpd -V
Build-Date: Sep 30 2008 06:18:08
 
Event Handlers:
	+ select (generic)
	+ poll (Unix)
	+ rt-signals (Linux 2.4+)
	+ epoll (Linux 2.6)
	- /dev/poll (Solaris)
	- kqueue (FreeBSD)
 
Network handler:
	+ sendfile
 
Features:
	+ IPv6 support
	+ zlib support
	+ bzip2 support
	+ crypt support
	+ SSL Support
	+ PCRE support
	- mySQL support
	- LDAP support
	- memcached support
	- FAM support
	- LUA support
	- xml support
	- SQLite support
	- GDBM support

如果没有IPv6 support字样,可能需要升级版本或者重新编译,如果有,编辑Lighttpd的配置文件:

1
# vi lighttpd.conf

在主配置区添加server.use-ipv6 = “enable”,以下为同时启用IPv4和IPv6的情况:

1
2
3
4
5
server.use-ipv6 = "enable"
server.port = 80
$SERVER["socket"] == "0.0.0.0:80" {
# 这里为你的站点配置
}

之后重启你的Lihttpd即可。

1
2
Debian/Ubuntu: invoke-rc.d lighttpd restart
CentOS/Fedora: service lighttpd restart

IIS 6/7

IIS 6/7 步骤比较繁琐,21就不当搬运工了,大家可以移步去 http://loosky.net/?p=1198 瞅瞅;

-EOF-

——————–
引用参考:
1. Enabling IPv6 Support in nginx: http://kovyrin.net/2010/01/16/enabling-ipv6-support-in-nginx/
2. Lighttpd: Enable IPv6 Support: http://www.cyberciti.biz/tips/linux-unix-lighttpd-ipv6-support.html
3. IPv6的安装与配置: http://loosky.net/?p=1198

April 6, 2011