Назад | Перейти на главную страницу

Как включить aio на nginx во FreeBSD?

Я хочу использовать асинхронный ввод-вывод на nginx на FreeBSD. Я вижу много документации о том, как его настроить или как скомпилировать с ним nginx.

Однако у меня уже установлен nginx, поэтому мне нужно перекомпилировать nginx с включенным aio. Часть перекомпиляции - это то, что я не умею делать.

Я использую порт nginx (v0.7.67), поставляемый с FreeBSD 8.

Кто-нибудь может мне помочь?

Во-первых, вам нужно добавить поддержку AIO в FreeBSD. Для этого можно использовать два способа. 1) Добавьте «параметры VFS_AIO» и пересоберите ядро. 2) Загружается AIO динамически через загружаемый модуль ядра: kldload aio

После этого добавьте следующие строки в config:

location /video/ {
    sendfile       off;
    aio            on;
    output_buffers 1 64k;
}

Вы можете использовать sendfile для AIO:

location /video/ {
    sendfile       on;
    tcp_nopush     on;
    aio            sendfile;
}

Оба варианта будут работать.

Самый простой способ включить поддержку aio файла nginx во FreeBSD - это установить nginx через дерево портов и просто выбрать опцию FILE_AIO в диалоговом окне.

portsnap fetch extract
cd /usr/ports/www/nginx
make install clean

Но если вы хотите скомпилировать его самостоятельно, загрузите исходный код, распакуйте его, а затем:

./configure --with-file-aio
make install

(Вам нужно запустить оба PortSnap и сделать установку как root!)