给自己的网站添加IPv6访问—Apache

祝朋友们新年快乐!2014年,大家一定幸福平安,心想事成!

新年新气象,我也给这个博客站增添了新的东西,那就是IPv6支持。由于IPv4资源的逐渐枯竭,IPv6这几年发展得很快,国外很多VPS厂商都已经提供了IPv6的支持。国内目前还很少用IPv6,但对于教育网用户,所有的IPv6网站都是可以免费访问的,因此给网站增加IPv6访问后可以对教育网用户,尤其是学生群体非常有利。由于我自己用的是Apache,正好也因为自己的需要,所以就以这个网站为例,介绍一下怎样在Apache中配置IPv6网站以及相关的解析、内容访问等工作,并简要介绍一下Wordpress镜像站的简单制作。

首先我们需要明确自己的VPS是否支持IPv6。比如我现在用的阿里云,就完全不支持!目前来看,国内的VPS没有一家是支持IPv6的,而且即便用He.net的IPv6 Tunnel也没有办法实现IPv6访问,这是国内外网络环境不同所导致的,所以要实现IPv6访问,对于我来说唯一的办法是在国外VPS上再搭建一个同步环境。正好还有一个BuyVM 128M内存的小鸡,而且它很方便地提供了一个/64的IPv6,于是就用这个来提供IPv6访问。

首先,我们要确保VPS能够从IPv6正确访问。设VPS的IPv6地址为2013:12:24::1,那么我们用自己的电脑执行ping6 2013:12:24::1,若能正确返回即可。回到VPS,搭好Apache服务器,打开Apache配置文件或者虚拟主机配置文件,比如vhost.conf,按照IPv4一样的写法配置一个虚拟主机。需要了解的是,对于IPv6来说,最好给每个网站分配单独的IP地址。在Apache中,所有的IPv6都需要用方括号[]括起来,以示与IPv4的区分。因此,我们的虚拟主机文件的首行应该写成<VirtualHost [2013:12:24::1]:80>而不是<VirtualHost 2013:12:24::1:80>或者<VirtualHost *:80>如果用通配符*来指代所有可用IP,对于IPv6网站Apache可能不能正确处理导致无法正常访问。

配置好虚拟主机文件后执行/etc/init.d/httpd reload (CentOS)或者 a2ensite(Ubuntu)等指令来启用虚拟主机。这时我们访问该IPv6就可以看到Apache的欢迎页面了。其他的操作和IPv4操作是基本相同的。当然,首先我们也需要把对应的域名做一个AAAA记录解析到对应的IPv6上,国内的解析商除了DNSPod之外好像都不支持AAAA记录,国外的解析商一般都是支持AAAA记录的。解析好之后,就可以通过域名访问到IPv6地址的Apache欢迎页了。接下来我简要介绍一下怎样制作一个Wordpress的镜像站。首先要明确的是,我制作这个镜像站的目的仅仅是为了添加IPv6的访问支持,并不是为了提高国外的访问速度;而且IPv6镜像站只能放在国外,国内访问速度一定会降低。所以这个镜像站的访问速度是不在我考虑的范围内的。因此,我们只需要做到的一个站点的数据更改后镜像站点的数据能够同步更改,或者镜像站点的数据更改后主站点的数据也能够同步更改就可以了。一个比较常用的方法是MySQL的双向同步,但是我这种懒人显然是不高兴做这么麻烦的事情的。我们知道,WordPress的所有数据都是通过MySQL存放的,那么我们只需要让两个站点的Wordpress使用同一个数据库,就可以实现主站和镜像站的完全同步。考虑到网站的主要访问者是国内用户,因此只能牺牲IPv6镜像站的访问速度了。我们将主站的wordpress文件夹打包复制到镜像站点后解压,接着打开wp-config.php文件,将DB_HOST这个常量由localhost改为主站的MySQL外部访问地址(记得加上端口号),就做到了数据库的完全共享。访问一下IPv6域名,主页已经可以正常显示了。但别高兴太早,只完成了一半。

我们随意点击镜像站上的一个链接,发现又跳回了主站点的对应页面。对呀,我们的博客地址也是保存在MySQL里面的,共享了MySQL之后,镜像站里面每一条链接都是由主站点的URL加上其他Rewrite内容组成的,这就麻烦了,如果不做更改,那么IPv6镜像站就只能访问主页了,其他所有的页面都会跳回主站点。解决的办法也不复杂,打开镜像站点的wp-config.php文件,在数据库连接操作之后增加一条Wordpress地址的常量定义即可,即define(‘WP_HOME’, ‘http://ipv6.qing.su’); define(‘WP_SITEURL’, ‘http://ipv6.qing.su’);这样再访问镜像站时所有的链接都改成了IPv6站的链接,我们的简易IPv6镜像站就制作完毕了。需要注意的是,以后写的博客中附带的图片等附件需要在主站点和镜像站点中分别上传,并保证文件名一致,否则在IPv6站点下就不一定能够看到图片。

19 Responses

  1. 无纯洁说道:

    学校抠,不给寝室通CERNET2,哎~

    • 香菇肥牛说道:

      。。我们用IPv6也不大方便。。。得自己接路由器才行。。

  2. Youth.霖说道:

    看……不……懂……

  3. 夏日博客说道:

    用IPV6真心不方便啊。

  4. 林梓洁博客说道:

    虽然看不太懂但是觉得很厉害的样子。

  5. 草陌博客说道:

    来给博主拜年了,祝博主,马上又起三年内,马上有妞,呵呵

  6. 依依说道:

    确实不太方便,换成IPv6对于优化也没啥好处..等国家政策吧..

  7. 老左博客说道:

    字太小,行高再高点,现在看着不舒服。

  8. 海阔天空说道:

    看起来好高端啊,虚拟主机默默路过。

  9. 佳佳酱说道:

    坐等ipv6普及

  10. Mars丶Ge说道:

    搞纳闷了,兄弟,你搞得懂么?
    设置了Rewrite之后,为什么我根目录没放robots.txt
    http://www.marsge.cn/robots.txt
    这个链接照样能打开?
    而我放了我写好的robots.txt,打开的内容一直就是3行固定内容。空间商能根据我这个wp来设置robots?我晕了。。。

    • 香菇肥牛说道:

      这个应该是wordpress自动生成的吧。。。可以放一个自己的robots.txt来替换掉这个~~

  11. Mars丶Ge说道:

    @香菇肥牛
    替换了还是那个内容,所以我才纳闷。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注