IPB

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
XBT vs. Apache
FreeM@N
сообщение 18.11.2009, 8:40
Сообщение #21


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

Группа: Главные Админы
Сообщений: 660
Регистрация: 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


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

Группа: Главные Админы
Сообщений: 660
Регистрация: 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


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

Группа: Главные Админы
Сообщений: 660
Регистрация: 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


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

Группа: Главные Админы
Сообщений: 660
Регистрация: 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


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

Группа: Главные Админы
Сообщений: 660
Регистрация: 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 Текстовая версия службы мониторинга серверов Сейчас: 18.10.2018, 1:57
Rambler's Top100