Настройка Rutorrent для работы с Nginx

После долгого использования rtorrent в консольном режиме решил наконец прикрутить к нему rutorrent Почему именно rutorrent? Потому что насколько я понял морда wtorrent с nginx не дружит совсем. Итак, я не буду рассказывать сейчас как настраивать rtorrent, тот кто читает наверняка уже его использует давно,а расскажу конкретно как к rtorrent прикрутить веб морду. Везде где я читал rutorrent слушал порт по протоколу TCP/IP, но я считаю использование unix socket будет и безопаснее как то правильнее чтоли. Приступим: Для начала нам нужно иметь хотя бы рабочий nginx, rtorrent собранный

--with-xmlrpc

и собственно сам rutorrent с плагином RPC Скачиваем по этим двум ссылкам и расспаковываем:

cd /srv/http sudo tar -xvzpf /path/to/rutorrent-3.1.tar.gz

После чего переходим в директорию plugins:

cd /srv/http/rutorrent/plugins  sudo tar -xvzpf /path/to/rpc-3.1.tar.gz

Меняем владельца директории rutorrent на того от которого запущен nginx,например http

sudo chown -R http:http /srv/http/rutorrent/

Затем открываем вашим любимым текстовым редактором конфигурационный файл rutorrent

nano -w /srv/http/rutorrent/conf/config.php

и прописываем порт и хост для прослушки:

$scgi_port = 0; $scgi_host = "unix:///tmp/ru.sock";

Далее открываем конфиг rtorrent’a

nano ~/.rtorrent.rc

и прописываем адрес сокета который будет создавать rtorrent при старте.

scgi_local = /tmp/ru.sock

Единственная загвоздка в том что запуск rtorrent у меня происходит от другого пользователя нежели запуск nginx. Проблема эта решается путем добавления в init скрипт rtorrentd нужного umask. Прямо в скрипте прописываем:

umask 111

Теперь займемся nginx’ом: Создадим новый локэйшен для этого:

location /rutorrent {
root /srv/http/; auth_basic "You need the password";
auth_basic_user_file /etc/nginx/conf/torrent; 
} location ~* .php$ { index index.html; fastcgi_pass unix:/tmp/ru.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/http$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string;
}

Теперь при обращении www.yourdomain.ru/rutorrent будет открываться веб морда rutorrent. Хочу заметить что ее надо скрыть от посторонних глаз. Так как сам rutorrent не обладает никакими собственными методами аутенфикации мы сделали ее средствами nginx и прописали выше:


auth_basic "You need the password"; auth_basic_user_file /etc/nginx/conf/torrent

Теперь создадим с помощью httpasswd (утилита Apache) зашифрованный пароль и запишем его хеш в /etc/nginx/conf/torrent.


sudo htpasswd -b /etc/nginx/conf/torrent your_login your_password

Собственно все, теперь перезапускаем nginx и rtorrent и открываем в браузере . Выдастся запрос на авторизацию после ввода которого вы можете рулить закачками на сервере хоть с дивана, хоть с работы.

Оцените статью