我的设置:
- nginx 监听 80 端口并作为反向代理工作(加上直接发送静态文件)
- Apache 2 正在监听端口 8080
- PHP 在 Apache 2 中运行
- 全部在一台服务器上运行(无内部网络延迟)
我的问题:
静态文件现在非常快,但是通过代理的所有内容都需要大量额外的时间。
一个示例是“搜索即键入”标签建议框。当我通过端口 8080 直接连接到 Apache 时,一切都很好,服务器响应迅速(约 50 毫秒)。当我通过端口 80(nginx -> Apache)使用“正常路径”时,每个请求大约需要 15 倍的时间(约 750 毫秒)。
我期待更多的时间。现在请求并没有以任何方式离开服务器,那么为什么它们要花这么多时间来处理呢?如何让它们更快?
有什么办法可以在 nginx 和 Apache 之间使用持久连接?
有什么方法可以对添加额外 0.7 秒的位置进行基准测试吗?
主要兴趣:我能否确定这个时间是来自 nginx 的内部处理(例如主机名表查找)还是与 Apache 的连接。nginx 是否在等待打开的套接字 - 或者这里发生了什么?
好的,我终于找到了我的问题 - 看起来好像是我自己造成了问题:
我错误地配置了limit_req_zone,将我的服务器限制为比预期慢的爬行。