我最近设置了一个 256MB 的 VPS 切片来运行 LAMP 堆栈(Ubuntu 11.04、Apache2、Mysql、PHP5)。到目前为止,我只在我设置的基于 IP 的虚拟主机上运行了一个简单的 Wordpress 网站。
性能非常好,但我注意到,如果我在短时间内从同一个 IP 发送多个 HTTP 请求,则只会呈现部分页面。然后,如果我稍等片刻并刷新页面,整个页面就会再次加载。当我从办公室桌面通过两个浏览器访问该网站时,我注意到了这种行为,但如果我通过单个浏览器(任何浏览器)快速浏览该网站,它也会出现。
我猜这是 Apache 现象,因为除了上述情况之外,页面都能正确呈现,但也许我错了。可能是我的托管公司设置了某种 DOS 保护?
作为一个相对的 Linux/服务器新手,我真的很感激任何关于 Apache 中的哪些设置可以解释这种行为的见解,以及我如何去改变它。
答案1
“渲染”几乎完全是客户端的事情。一旦服务器向您发送了渲染页面所需的所有资源,就由浏览器来实际渲染它。如果您认为服务器没有向您发送渲染页面所需的所有资源,那就是另一个问题了。
Firebug 或 Chrome 的“检查元素”工具等工具可以帮助您确定是是否收到所有必需的资源。
如果您想知道服务器正在做什么,最好的办法就是检查 Apache 访问日志,查找发送的页面的大小差异、不同的 HTTP 状态代码(例如 500)或错误日志中有关 DOS 保护的错误消息。