IPB

Здравствуйте, гость ( Вход | Регистрация )

XBT vs. Apache
kup
сообщение 21.9.2009, 10:28
Сообщение #1


Участник
**

Группа: Пользователи
Сообщений: 10
Регистрация: 17.8.2009
Пользователь №: 2 442



Такой вопрос. В связи с тем, что на т.ру стал добавляться в список трекеров retracker.local появилось желание перевести XBT на 80 порт, но всплыла серьёзная проблема. На сервере, где крутится ретрекер ещё установлен апач, который уже использует 80 порт. Возможно ли вообще их как-то "подружить" между собой?


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
2 страниц V  < 1 2  
Начать новую тему
Ответов (20 - 31)
FreeM@N
сообщение 18.11.2009, 8:40
Сообщение #21


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Вроде бы xbtt можно сообщить какой у пользователя ип вызвав его с дополнительным параметром, типа:
http://10.10.10.10:2710/announce?ip=1.1.1.1&


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
Am1GO
сообщение 18.11.2009, 21:56
Сообщение #22


Участник
**

Группа: Пользователи
Сообщений: 21
Регистрация: 3.8.2009
Пользователь №: 2 338



у меня nginx проксирует запросы к /st /announce /scrape и /debug на localhost:порт_xbtt

для того, чтобы xbtt можно было передавать ip, запрос должен поступать с 127.0.0.1 на 127.0.0.1.
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 18.11.2009, 22:08
Сообщение #23


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Конфиг покажите...


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
Am1GO
сообщение 19.11.2009, 0:47
Сообщение #24


Участник
**

Группа: Пользователи
Сообщений: 21
Регистрация: 3.8.2009
Пользователь №: 2 338



Код
        server {
                listen *:80;
                server_name retracker.lnetw.ru retracker.local;
                location @fallback {
                        proxy_pass http://retracker.lnetw.ru:8197;
                        proxy_redirect http://retracker.lnetw.ru:8197/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
                location ~* ^.+\\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|tgz|tbz|xls|doc|exe|pdf|ppt|txt|tar|mid|midi|wav|wave|bmp|rtf|swf|tiff|
log|m3u|flv|xcf|wmv|wma|pls|asf|asx|diff|rpm|deb|xml|xhtml|html|mkv)$ {
                        error_page 400 401 402 403 404 500 501 502 503 = @fallback;
                        root /mnt/s80/pub/retracker.lnetw.ru/www;
                        access_log /mnt/s80/pub/retracker.lnetw.ru/logs/access.log;
                }
                location ~* ^/(st|announce|debug|scrape|statistics) {
                        rewrite ^/announce?[^(ip=)]*(.*)$ /announce?ip=$ip_r$1 break;
                        proxy_pass http://127.0.0.1:7717;
                        proxy_redirect http://127.0.0.1:7717/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $ip_r;
                        proxy_set_header X-Real-IP $ip_r;
                }
                location / {
                        proxy_pass http://retracker.lnetw.ru:8197;
                        proxy_redirect http://retracker.lnetw.ru:8197/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                }
        }
Перейти в начало страницы
 
+Цитировать сообщение
Am1GO
сообщение 19.11.2009, 0:49
Сообщение #25


Участник
**

Группа: Пользователи
Сообщений: 21
Регистрация: 3.8.2009
Пользователь №: 2 338



ах да, по-поводу переменной $ip_r
Код
perl_set $ip_r '

        sub {
            my $r=shift;
            my $sa=$r->variable("server_addr");
            my $ra=$r->remote_addr;

            $ra=~ s/192.168.22.2/$sa/;
            return $ra;
        }

    ';
это мои локальные костыли
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 19.11.2009, 2:11
Сообщение #26


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Перед блоком
Код
location ~* ^/(st|announce|debug|scrape|statistics) {

поставьте вот такой
Код
        if ( $request_uri !~* "^/announce?\?ip=.*" ) {
                rewrite .* /announce?ip=$remote_addr&$args break;
        }


Это шаманство в топку:
Код
rewrite ^/announce?[^(ip=)]*(.*)$ /announce?ip=$ip_r$1 break;


P.S.: Конкретно в вашей конфигурации он не заработает, но при должной модификации всё заведётся.

Принцип такой - сначала подготовить URL с параметрами, а потом отправлять на проксирование.

UPD:
Хотя в вашем случае всётаки if придётся поместить в location
но проверку на announce лучше отделить от остальных

Вот так попробуйте
Код
location ~* ^/announce {
                        if ( $request_uri !~* ".*\?ip=.*" ) {
                                  rewrite .* /announce?ip=$remote_addr&$args break;
                                    }
                        proxy_pass http://127.0.0.1:7717;
                        proxy_redirect http://127.0.0.1:7717/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $ip_r;
                        proxy_set_header X-Real-IP $ip_r;
                }


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
Am1GO
сообщение 19.11.2009, 7:43
Сообщение #27


Участник
**

Группа: Пользователи
Сообщений: 21
Регистрация: 3.8.2009
Пользователь №: 2 338



в конкретно моём случае всё сделано замечательно. $remote_addr я не использую по той простой причине, что если запрос поступет изнутри моей локальной сети (а сервер является ещё и гейтом для моей локалки), то xbtt передаётся неправильный ip, для того $ip_r и сделана.
далее - отдельный локейшн только для /announce? нахрена?
про все if'ы Сысоев довольно однозначно выразился, почитайте, именно поэтому сделано не if'ом, а вот таким вот реврайтом.
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 19.11.2009, 9:00
Сообщение #28


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Тогда в чём проблема? Вы говорите что не работает, я вам предлагаю вариант, отличный от вашего, а на это отвечаете "танунафиг".
Про if-ы в курсе и тем не менее...
Про $remote_addr - я думал вы сами догадаетесь заменить его, просто так наглядней...

UPD:
Про отделный location для announce - а разве на других страницах необходим IP пользователя? Так зачем делать ненужный rewrite тогда? спички...


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
ISQman
сообщение 19.11.2009, 16:29
Сообщение #29


Активный участник
***

Группа: Пользователи
Сообщений: 30
Регистрация: 6.10.2009
Пользователь №: 2 900



пробую ещё один вариант:
на фре по статье лиса собрал джаил и повесил его на отдельный ип (дабы не занимать порты и не строить редиректы), там себе вертяца пару демонов, в том числе XBT, MySQL, ну и ссх, итп, для поддержки "реальности" машины, надеюсь спасёт.
Перейти в начало страницы
 
+Цитировать сообщение
s2k
сообщение 8.12.2009, 8:51
Сообщение #30


Новичок
*

Группа: Пользователи
Сообщений: 1
Регистрация: 1.12.2009
Пользователь №: 3 579



Подскажите как подружить XBT c DLE на деневре, чтобы работал http://retracker.local/announce
с реврайтом не получаеться
[code]DirectoryIndex index.php

RewriteEngine On

# DLE
RewriteRule ^announce(/?)+$ /announce.php [L][code]
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 21.12.2009, 0:27
Сообщение #31


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Apache под рукой нет поэтому попробуйте изучить документацию по mod_rewrite.


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
nemec2000
сообщение 11.1.2010, 19:37
Сообщение #32


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 21.11.2009
Пользователь №: 3 425



Сделал так, все работает, но в клиенте иногда не показаны сидеры и личеры, почему, кто поможет?
Redirect permanent /announce.php http://ип:2710/announce
Redirect permanent /announce http://ип:2710/announce
Перейти в начало страницы
 
+Цитировать сообщение

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 11.5.2024, 21:03
Top.Mail.Ru