如何在 FreeBSD 上的 nginx 上启用 aio?

如何在 FreeBSD 上的 nginx 上启用 aio?

我想在 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 身份!

相关内容