我想知道是否有人有解决方案来限制 Xserve(运行 Apache 2)上的带宽;我正在尝试使用 mod_bw(http://ivn.cl/category/apache/#bandwidth),但遇到了问题。我可以使用 apxs 构建正确的模块,但尝试重新启动 Apache 时遇到问题(它说 mod_bw.so 是针对错误的体系结构编译的)。
谢谢。
答案1
您可以使用防火墙的 dummynet 功能进行带宽限制(说明位于Mac OS X 提示和AFP548,但由于这些仅与 TCP 端口号绑定,因此它们无法区分不同的虚拟主机、客户端连接等。
您可能最好修复架构不匹配的问题。运行file /usr/libexec/apache2/mod_bw.so
以查看模块是为哪种架构构建的,并file /usr/sbin/httpd
查看 httpd 是为哪种架构构建的(在 10.6 下,应该是 X86_64、i386 和 ppc)。要控制模块是为哪种架构构建的,我认为您只需添加 -arch 标志即可传递给编译器和链接器,例如
apxs -Wc,"-arch x86_64" -Wc,"-arch i386" -Wc,"-arch ppc" -Wl,"-arch x86_64" -Wl,"-arch i386" -Wl,"-arch ppc" ...
最好匹配 httpd 编译的体系结构,但真正需要包含的只是它实际运行的模式;要找出答案,您可以在活动监视器中查看它。