我想在 FreeBSD 上的 nginx 上使用异步 IO。我看到很多关于如何配置它或如何使用它编译 nginx 的文档。
但是我已经安装了 nginx,所以我需要重新编译 nginx 并启用 aio。重新编译部分我不知道该怎么做。
我正在使用 FreeBSD 8 提供的 nginx (v0.7.67) 端口。
有谁能够帮助我?
答案1
首先,您需要为 FreeBSD 添加 AIO 支持。您可以使用两种方法来实现这一点。1) 添加“options VFS_AIO”并重建内核。2) 通过可加载内核模块动态加载 AIO:kldload aio
然后将以下几行添加到配置中:
location /video/ {
sendfile off;
aio on;
output_buffers 1 64k;
}
您可以使用 sendfile 进行 AIO:
location /video/ {
sendfile on;
tcp_nopush on;
aio sendfile;
}
两种方式都可以。
答案2
在 FreeBSD 上启用 nginx 文件 aio 支持的最简单方法是通过端口树安装 nginx,然后在对话框中选择 FILE_AIO 选项。
portsnap fetch extract
cd /usr/ports/www/nginx
make install clean
但是如果你想自己编译它,请下载源代码,提取它,然后:
./configure --with-file-aio
make install
(您需要同时运行端口快照和进行安装以 root 身份!