Re: $realip_remote_addr выдает айпи прокси а не клиента

2016-01-24 Пенетрантность Pavel V.
Здравствуйте, Андрей.

Вы писали 24 января 2016 г., 4:45:36:


> В конфиге прописано:

> real_ip_header X-Forwarded-For;
> real_ip_recursive on;
> set_real_ip_from 94.23.0.0/16;

>  proxy_set_header   X-Real-IP$realip_remote_addr;
>  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;


> На бэкнде получаю в X_REAL_IP айпи прокси а не клиента:

>  [HTTP_X_REAL_IP] => 94.23.156.246
>  [HTTP_X_FORWARDED_FOR] => 176.104.49.220, 94.23.156.246
>  [REMOTE_ADDR] => 94.23.156.246

> Кто виноват и что делать?

Всё работает так, как вы указали в конфигурации.

Цитирую http://nginx.org/ru/docs/http/ngx_http_realip_module.html :

$realip_remote_addr -  хранит исходный адрес клиента (1.9.7)

В данном случае клиентом является то, что соединилось с nginx, т.е. прокси.

Вам следует использовать переменную $remote_addr:

proxy_set_header X-Real-IP $remote_addr;

Возможно также, что директива "proxy_set_header   X-Forwarded-For  " совсем 
не нужна,
чаще всего это наследие копипаста. Для получения IP реального клиента 
достаточно X-Real-IP.


-- 
С уважением,
 Pavel  mailto:pavel2...@ngs.ru

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

разный expires для расширений и без location

2016-01-24 Пенетрантность itcod
Добрый день уважаемые!
Подскажите существует ли метод назначать разные expires для разных
расширений файлов без использования разных location для этого. Знаю что в if
не обернуть. Есть ли альтернатива?

Ситуация побробнее:
Существует location в котором установлены различные lua обработчики и
переменные. И очень не хотелось бы плодить одно и тоже в разных location
только из за пары ключей expires и кэшконтроля.

Пример location который очень не хочется плодить, так как в дальнейшем
сложно будет отслеживать изменения конфиг множества подобий. 

location / {
limit_req   zone=itcod  burst=200 nodelay;
limit_rate  2048k;
set $auth_dav private; #none/private
access_by_lua_file /etc/nginx/lua/auth-dav.lua;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
create_full_put_path on;
dav_access user:rw group:rw;
client_body_temp_path /opt/itcod-dav.tmp/;
client_max_body_size 0;
autoindex on;
root $dir;
header_filter_by_lua_file /etc/nginx/lua/itcod-exchange.lua;
set $md5index on; #on/off nil=off # вкл/выкл обработчик
set $md5index_hash md5; #none/md5/md4/sha1/sha/ripemd160 nil=none # тип
выводых хэшей
set $md5index_size 5; #kb nil=unlimit # не считать для файлов более 
N
kb
set $md5index_path on; #on/off nil=off  # заменять относительный путь
ссылок на полный URI
set $md5index_nonblank on; #on/off nil=off # заменить множественные 
пробелы
одним
set $md5index_type on; #on/off nil=off # добавит в строки описание типа
file/directory/etc...
set $md5index_ico http://ihome.itcod.com/max/projects/libs/icons16ext/; 
#
путь к библиотека иконок
set $md5index_icopref icon-; # префикс имени файла иконки
#set $md5index_icosuf -icon; # суфикс имени файла иконки
set $md5index_icoext .gif; # расширение файла иконки
set $md5index_win _blank; # target window for !winext! files
set $md5index_winext htm.html.txt; # file extension for target windows
body_filter_by_lua_file /etc/nginx/lua/md5index.lua; # addon
обработчик

}

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,264076,264076#msg-264076

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Как вытащить нужные данные из user-agent?

2016-01-24 Пенетрантность igroykt
Всем привет!
Есть такая строка HTTP/1.0" 301 178 "-" "Mozilla/5.0 (Linux; Android 4.0.3;
KFTT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Silk/47.2.3 like
Chrome/47.0.2526.83 Safari/537.36"
Надо вытащить либо KFTT либо Build/ либо Silk.
Задача определить устройства kindlefire и редиректить на один ресурс а
остальные android устройства на другой.
Всякие разные регулярки перебрал но пока без результатно.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,264075,264075#msg-264075

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: $realip_remote_addr выдает айпи прокси а не клиента

2016-01-24 Пенетрантность Андрей Василишин

24.01.2016 10:33, Pavel V. пишет:

Здравствуйте, Андрей.

Вы писали 24 января 2016 г., 4:45:36:



В конфиге прописано:



real_ip_header X-Forwarded-For;
real_ip_recursive on;
set_real_ip_from 94.23.0.0/16;



  proxy_set_header   X-Real-IP$realip_remote_addr;
  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;




На бэкнде получаю в X_REAL_IP айпи прокси а не клиента:



  [HTTP_X_REAL_IP] => 94.23.156.246
  [HTTP_X_FORWARDED_FOR] => 176.104.49.220, 94.23.156.246
  [REMOTE_ADDR] => 94.23.156.246



Кто виноват и что делать?


Всё работает так, как вы указали в конфигурации.

Цитирую http://nginx.org/ru/docs/http/ngx_http_realip_module.html :

$realip_remote_addr -  хранит исходный адрес клиента (1.9.7)

В данном случае клиентом является то, что соединилось с nginx, т.е. прокси.

Вам следует использовать переменную $remote_addr:


Поставил, результат тот же


proxy_set_header X-Real-IP $remote_addr;

Возможно также, что директива "proxy_set_header   X-Forwarded-For  " совсем 
не нужна,
чаще всего это наследие копипаста. Для получения IP реального клиента 
достаточно X-Real-IP.



Она-то конечно не нужна, но вот для дебага таки нужна

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Как вытащить нужные данные из user-agent?

2016-01-24 Пенетрантность Vadim A. Misbakh-Soloviov
К сожалению, не смог найти оригинальную статью, но тем не менее:
1)
http://stackoverflow.com/questions/8970800/is-server-side-useragent-detection-bad
2) http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/10451071.aspx

TL;DR: Опираться на юзерагент в логике поведения приложения - какашка.
// А гугл за это даже удаляет из выдачи, например.


23.01.2016 14:19, igroykt пишет:
> Всем привет!
> Есть такая строка HTTP/1.0" 301 178 "-" "Mozilla/5.0 (Linux; Android 4.0.3;
> KFTT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Silk/47.2.3 like
> Chrome/47.0.2526.83 Safari/537.36"
> Надо вытащить либо KFTT либо Build/ либо Silk.
> Задача определить устройства kindlefire и редиректить на один ресурс а
> остальные android устройства на другой.
> Всякие разные регулярки перебрал но пока без результатно.
>
> Posted at Nginx Forum: 
> https://forum.nginx.org/read.php?21,264075,264075#msg-264075
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru