Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam,
Mam 3 serwery na główny przychodzą zapytania , a on przekierowuje je na serwer 2 lub 3.
W logach serwerów mam już IP serwera 1 a nie klienta?
Serwerki są na nginx z obsługą php. Serwer 1 działa jako load balancing.
Czy można tak zrobić by do serwera 2 i 3 docierały oryginalne IP ?
Dzięki za info
Offline
A nie możesz na pierwszym serwerze zbierać zapytań dotyczących http czy kierowanych na dany serwer ?
Ostatnio edytowany przez ba10 (2013-11-22 14:12:08)
Offline
mi to tam w ogóle nie przeszkadza, ale programista chyba sobie nie radzi i dlatego szef mi tyłek zawraca:)
Myślałem, że może jakiś myk jest , który gdzieś mi umkną w konfiguracji nginx
Offline
Ja myślę, że to nie jest sprawa nginx, a raczej routingu, NATu czy jak tam masz sieć rozwiązaną.
Offline
można na maszynach 2 i 3 w nginx wpisujemy
set_real_ip_from 127.0.0.1; #Adres IP LOAD BALANCERA real_ip_header X-Forwarded-For;
Działa aż miło
Ostatnio edytowany przez redelek (2013-11-22 14:25:54)
Offline
He he fajnie się czegoś nowego dowiedzieć, dzięki :)
Offline
Ten pierwszy serwer przekazuje zapytania przez mod_proxy?
Jeśli tak, to masz możliwość ustawienia odpowiednich nagłówków, o ile nie śmigają domyślnie.
przykład:
server { listen 80; server_name your.hostname.tld root /your/root/ location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } }
Ustaw takie nagłówki, a potem przez np phpinfo sprawdź, czy widać je na serwerach 2 i 3.
Któryś powinien zaskoczyć jak trzeba.
A jak programista nie poradzi sobie z takimi nagłówkami, to daj ogłoszenie o pracy dla programisty. :D
Sznurki:
http://wiki.nginx.org/HttpProxyModule
http://advent.perldancer.org/2012/3
Ostatnio edytowany przez Jacekalex (2013-11-22 14:30:24)
Offline
@Jacekalex
Tak miałem ustawione jak podałes na serwerku 1 , ale w logach serwerów 2,3 jest wszystko oprócz ip klientów :( Ale to co napisałem pomogło i teraz działa niech dalej dłubie :)))
Offline
Nie w logach, żeby w logach były takie zmienne, to musisz osobno ustawić w konfiguracji logowania.
Każdy taki nagłówek możesz odczytać dowolnym skryptem php czy cgi na serwerze.
Jak potrzebujesz w logach, to chyba będzie zmienna [b]$http_referer[/b].
Sznurek:
http://wiki.nginx.org/HttpLogModule
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00008 | SET NAMES latin2 |
0.00110 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.21.159.223' WHERE u.id=1 |
0.00097 | UPDATE punbb_online SET logged=1732855113 WHERE ident='3.21.159.223' |
0.00052 | SELECT * FROM punbb_online WHERE logged<1732854813 |
0.00095 | DELETE FROM punbb_online WHERE ident='18.227.49.73' |
0.00094 | DELETE FROM punbb_online WHERE ident='3.141.201.95' |
0.00069 | SELECT topic_id FROM punbb_posts WHERE id=246414 |
0.00056 | SELECT id FROM punbb_posts WHERE topic_id=24665 ORDER BY posted |
0.00062 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=24665 AND t.moved_to IS NULL |
0.00012 | SELECT search_for, replace_with FROM punbb_censoring |
0.00120 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=24665 ORDER BY p.id LIMIT 0,25 |
0.00111 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24665 |
Total query time: 0.00895 s |