【发布时间】:2011-09-22 22:11:23
【问题描述】:
我在 VM 网络服务器中有许多重定向,这些重定向在使用嵌入式导航器 (iceweasel) 浏览服务器时起作用。但是从主机的浏览器访问服务器时这不起作用(用 FF4/IE8/Chrome/Opera11 测试)。
所有有经验的重定向方法都在主机浏览器中驱动到“服务器不可用或过载”。
如果您可以查看 apache 日志中的标头并提供一些有关差异的提示(主要的看起来是 GET url,前提是相同的代码正在运行):
工作请求导致此日志:
cat /var/log/apache2/access.log | grep 127 | grep random | tail -n1
127.0.0.1 - authuserid [26/Jun/2011:11:11:52 +0200]
"GET /index.php?page=100 HTTP/1.1" 200 49151
"https://www.mydomain.foo/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&random=c0117685e7e65a307989c219efc587b4&sid=n7en2it41h2gumrcq3kmmil3c0&sidf=.ps_AWDkIY"
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.19) Gecko/2011050718 Iceweasel/3.0.6 (Debian-3.0.6-3)"
非工作请求导致此日志:
cat /var/log/apache2/access.log | grep 192 | grep random | tail -n1
www.mydomain.org:80 192.168.X.Y - authuserid [26/Jun/2011:11:08:07 +0200]
"GET /index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&random=685de8bcd4d198d6ad7f3cf4b23de5b7 HTTP/1.1" 302 -
"http://www.mydomain.foo/index.php?page=xyz"
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"
我无法显示标头响应,因为我没有收到响应并且 apache 没有报告错误 (loglevel=error)。
谢谢
控制完成:
我已将浏览器超时(FF:network.http.keep-alive.timeout 增加到 3600s:没有变化。
我检查了在重定向之前没有发送任何标题:好的(headers_sent() 的转储显示没有发送标题,也没有空行或包含中的空格,)
我增加了 Apache 服务器超时以防万一:没有变化
我确保从 HTTP/1.1 开始使用绝对 URL。
我尝试了 php、html meta 和 js 重定向:没有变化
编辑 1:
这是 LiveHTTPHeaders 在“非工作”情况下看到的标头:
http://www.mydomain.org/menus/noeud4.php
POST /menus/noeud4.php HTTP/1.1
主机:www.mydomain.org
用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
接受:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
接受语言:fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
接受编码:gzip、deflate
接受字符集:ISO-8859-15,utf-8;q=0.7,*;q=0.7
保活:3600
DNT:1
连接:保持活动
推荐人:http://www.mydomain.org/index.php?page=890
Cookie:PHPSESSID=4bge5gg1rgkit78k3seqlfcbq2
授权:基本 aW52aXRlZEBjYW1hY2FzYTp5b3VybXlndWVzdEB0b2RheQ==
内容类型:application/x-www-form-urlencoded
内容长度:98
login=my_superlogin1&pwd1=vbigpass3xqz%40A2L&captcha=91690& source=noeud4.php&>formulaire_valide=SOUMETTRE
找到 HTTP/1.1 302
日期:2011 年 6 月 26 日星期日 14:17:27 GMT
服务器:Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_fastcgi/2.4.6 mod_python/3.3.1 Python/2.5.2 >mod_ssl/2.2.9 OpenSSL/0.9.8g PHP/5.3.3 X-Powered-By:PHP/5.3.3
过期:1981 年 11 月 19 日星期四 08:52:00 GMT
缓存控制:无存储、无缓存、必须重新验证、后检查=0、预检查=0
编译指示:无缓存
位置:http://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788
内容长度:0
保持活动状态:超时=60
连接:保持活动
内容类型:text/html
http://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788
GET /index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788 HTTP/1.1
主机:www.mydomain.org
用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
接受:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
接受语言:fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
接受编码:gzip、deflate
接受字符集:ISO-8859-15,utf-8;q=0.7,*;q=0.7
保活:3600
DNT:1
连接:保持活动
推荐人:http://www.mydomain.org/index.php?page=890
Cookie:PHPSESSID=4bge5gg1rgkit78k3seqlfcbq2
授权:基本 aW52aXRlZEBjYW1hY2FzYTp5b3VybXlndWVzdEB0b2RheQ==找到 HTTP/1.1 302
日期:格林威治标准时间 2011 年 6 月 26 日星期日 14:19:59
服务器:Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_fastcgi/2.4.6 mod_python/3.3.1 Python/2.5.2 >mod_ssl/2.2.9 OpenSSL/0.9.8g PHP/5.3.3 X -技术支持:PHP/5.3.3
过期:1981 年 11 月 19 日星期四 08:52:00 GMT
缓存控制:无存储、无缓存、必须重新验证、后检查=0、预检查=0
编译指示:无缓存
位置:https://www.mydomain.org/index.php?page=100&new_session=a4da9106dba2ffd40345a5eb624d7788&sid=4bge5gg1rgkit78k3seqlfcbq2&sidf=.ps_Z5wRio
内容长度:0
保持活动状态:超时=60
连接:保持活动
内容类型:text/html
EDIT2: 比较请求/响应的两种情况(工作/不工作),我分离出以下两个主要区别:
关于“工作”响应:
状态:200
我没有关于“不工作”的回复,但我不明白为什么。
关于“非工作”响应:
DNT:1
代表选项Do Not Track (me) from FF4。
所以我尝试停用此选项,但结果相同。
我肯定会想念某件事。一切看起来好像服务器已关闭。也许会话 cookie (76 kb) 太大了。我还尝试将 firefox 4 降级到 3.6,因为这是另一个更改的参数,但我仍然得到与 FF3.6 和 FF4 相同的响应。
【问题讨论】:
-
你可以使用 LiveHTTPHeaders(用于 Firefox)或类似的东西来查看标题吗?
-
听起来像是域名/DNS/VHosting 的问题。您是否在 VM
/etc/hosts文件中设置了需要复制到主机的别名?主机是否向 VM 提供任何 DNS 服务,当不在 VM 内部工作时需要更换?如果来自主机的请求使用不同的域名,您是否使用基于名称的 Apache VHost,这可能意味着来自主机的请求被路由到不同的 VHost 配置。 -
@Frits van Campen:谢谢,这就是我试图使用萤火虫实现的目标。我使用“阻塞”标题进行了编辑。
-
@Robin:谢谢,因为这可能也是该问题的另一个潜在原因。虚拟机别名被复制到主机,它就像托管在同一虚拟机中的其他网站的魅力一样,我可以从主机访问。并且当前的问题几天前没有出现(相同的虚拟机,相同的网站,相同的主机,但代码和 apache 发生了变化),但我找不到原因。
-
@hornetbzz:这个虚拟机和主机之间的网络设置是什么?桥接?仅限主机?内部的?等等? VM 报告使用什么 IP?实际上,您使用的是什么 VM 软件?