Я хочу использовать асинхронный ввод-вывод на 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!)