昨天给vps配置了IPV6地址,今天早上发现discuz后台不能进入了,到discuz官网搜索,到也有类似问题,但是大都是要改文件清缓存之类。我以前没改文件没清缓存也好好的,应该不是这个问题。回想昨天做的事,中午还登录后台添加了版主,下午设置了ipv6,今天就不能进后台了,看来和ipv6有关系。
百度了下 “vps启用ipv6地址后discuz x2.5后台突然无法登陆”,找到一篇文章:
由于性能问题,将Web server从Apache切换成Nginx,通过修改rewrite规则后,网站工作正常,但是却无法登陆后台,切换成Apache就完全正常。
经过咨询“有颜色的猫”,小猫提及了几点:1、IPv6地址问题,2、Discuz自己实现的Session,后台登陆的时候会检查用户的IP地址是否和Session里面的IP地址一致。沿着小猫同志的方向,最终解决后台登陆问题。 由于该服务器上部分网站需要支持IPv6访问,于是Nginx必须监听IPv6端口,此时,Nginx识别IPv4地址为:::ffff:192.168.129.48,在地址前面增加:::ffff: ,了解IPv6的都知道这是什么意思,但是Discuz却识别不了这个IP地址。 Discuz是这么保存地址的,如果用户的IP地址是:192.168.129.48,Discuz用4个字段来保存这个IP地址,分别为:ip1 ip2 ip3 ip4,他们的值分别为:192 168 129 48。 解决办法: 让Nginx告诉fastcgi用户的IP地址为标准的IPv4地址即可。 修改fastcgi.conf文件的内容,增加:
# remove ^::ffff: for IPv4 Address.
set $remote_addr_new $remote_addr;
if ($remote_addr ~* ^::ffff:(.*))
{
set $remote_addr_new $1;
}
fastcgi_param REMOTE_ADDR $remote_addr_new;
|
文章引自:http://www.wenzk.com/archives/1239 |
admincp_session表中的ip 字段长度是15位。改为40位即可
谢谢啦~ 请教一下不检查登录ip会有什么安全问题吗?
已找到问题,应该是修改fcgi.conf而非fastcgi.conf,虚拟主机配置文件中是include fcgi.conf@admin
目前的解决方案:
config_global.php
$_config['admincp']['checkip'] = 0;
不检查登录IP
以上方法无效,不知道问题出在哪里