设为首页收藏本站

防未病交好友

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 64|回复: 0

Nginx+Discuz无法登陆后台解决办法

[复制链接]
a
0 0
  @ME:   
发表于 2014-12-16 11:32:29 | 显示全部楼层 |阅读模式
Nginx+Discuz无法登陆后台解决办法
                                                                          由于性能问题,将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文件的内容,增加:
1
2
3
4
5
6
7
8
# 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;




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|D1V1网社区 ( 沪ICP备05028199号  

GMT+8, 2018-12-13 00:36 , Processed in 1.291792 second(s), 29 queries .

Powered by Discuz! X3.2 Designed by 999test.cn

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表