我在嵌入式平台(OpenWRT)上使用 nginx 作为 IP 摄像机前面的反向代理,并且遇到一个问题,即摄像机将数据推送到 nginx 的速度比 nginx 将数据卸载到下一阶段的速度更快。
移除反向代理后,多余的帧就会被丢弃,仅此而已。但 nginx 似乎缓冲了大量的摄像头数据(多达 10-15 秒),这给观看者带来了极度的延迟。
那么,首先,是否有明显的措施可以提高反向代理的吞吐量?我没有使用 html 解析或翻译,只是将一些目录过滤到其他地方,并将其余的目录代理到摄像头。是否需要明确禁用其他一些代理功能(如数据包检查)?
其次,我如何才能大幅减少或消除 nginx 积累这个大缓冲区的意愿?我更希望看到它在过载时丢弃数据包,而不是存储它们。
谢谢。
答案1
您可以使用完全关闭缓冲,http://wiki.nginx.org/HttpProxyModule#proxy_buffering
但是,我认为您不能让它丢失数据。