|
|
Retracker.localМатериал из WikiTorrents
РетрекерВ связи с тем, что теперь добавляется ретрекер http://retracker.local/announce, здесь приводится несколько способов по его настройке. (подробности http://torrents.ru/forum/viewtopic.php?p=26656006) Настройка ретрекераНастройка через код ретрекера torrents.ruЭто PHP скрипт, который можно взять здесь http://torrents.ru/retracker.zip. Настройка его проста, но есть одна особенность. По стандарту[1] адрес ретрекера оканчивается на /announce, поэтому для Apache нужно прописать некоторые правила в .htaccess: RedirectRedirectPermanent /announce /announce.php RewriteЭтот вариант лучше предыдущего, потому что он делает внутренний редирект, т.е. не идет внешнего перенаправления клиента (301) RewriteEngine On RewriteBase / RewriteRule ^announce/?$ /announce.php [L] MultiviewsТакже можно включить опцию apache: Options +Multiviews Без правки .htaccessСоздаем директорию announce, в которую кладем announce.php и config.php из архива, и затем переименовываем announce.php в index.php
Rewrite для Nginxlocation ~* ^/announce$ {
rewrite ^/ /announce.php permanent;
error_log /dev/null;
access_log off;
}
ПримечанияЧтобы некоторые info_hash'ы обрабатывались правильно, необходимо установить в php.ini: magic_quotes_gpc = off Также это можно сделать в Apache через директиву php_flag: php_flag magic_quotes_gpc off Её можно добавлять или в .htaccess, или в настройки VirualHost в конфиге Apache. Настройка через xbtМожно использовать специализированный трекер, который не требует web сервера. Скачать его можно здесь http://sourceforge.net/projects/xbtt/. Сразу после его установки он готов к работе ретрекером. Настройка через xbt + NginxПолучился конфиг примерно такой, в xbtt необходимо выключить gzip: server {
listen 10.10.10.10:80;
server_name retracker.local;
server_name_in_redirect off;
# Обязательно нужно будет настроить ротацию логов
# Если логи не нужны можно выставить access_log off;
access_log /var/log/nginx/retracker.local.access.log;
gzip on;
location = / {
rewrite ^/ /announce permanent;
}
# Редирект на внутренний ИП блоее эффективен нежели
# использование proxy_pass
location ~ ^/(an|announce) {
rewrite ^/ http://10.10.10.10:2710/announce permanent;
}
location ~ ^/(st|statistics) {
rewrite ^/ http://10.10.10.10:2710/st permanent;
}
# Для оповещения об отсутствии scrape-url вполне подойдёт
# стандартная страница nginx-а
location ~ ^/scrape {
return 404;
}
}
Опции xbtt: log_access 0 log_announce 0 debug 0 gzip_debug 0 gzip_scrape 0 announce_interval 600 Настройка opentracker + NginxЕсли в nginx использовать proxy-pass на внутренний адрес, то по логам nginx можно собрать некоторую статистику использования ретрекера. Но тогда opentracker лучше собрать с опцией -DWANT_IP_FROM_QUERY_STRING - он будует использовать IP из запроса. При этом В nginx'е же можно подставить нужный нам IP адрес. Вот такой вот конфиг nginx'а получился с opentracker server {
listen 80;
access_log /var/log/nginx/retracker.access.log;
# мойдомен - домен, в котором находится хост
# Если выдавать IP адреса по DHCP, то это значение опции option domain-name
# Если не существует адреса retracker.local, то хост ищет retracker.local.<мойдомен>
server_name retracker.local retracker.local.<мойдомен>.ru tracker.local tracker.local.<мойдомен>.ru;
location / {
Если в запросе присутствует ip=, убираем его
if ($args ~* ^(.*)&ip=[^&]+(.*)$) {
set $args $1$2;
}
#В качестве IP ставим адрес, с которого пришел запрос
set $arg_ip $remote_addr;
#Перенаправляем /announce.php на announce
rewrite ^/announce\.php$ /announce/?$args&ip=$arg_ip? break;
#scrape.php - на scrape
rewrite ^/scrape\.php$ /scrape/?$args? break;
# / (retracker.local, без announce - на anounce/)
rewrite ^/$ /announce/?$args&ip=$arg_ip? break;
#адрес opentracker'а
proxy_pass http://127.0.0.1:6969/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
В opentracker при этом всего 1 опция: listen.tcp_udp 127.0.0.1:6969
|