local IP address

Fedor Dikarev fe на hamilton.rinet.ru
Чт Фев 28 16:37:18 UTC 2019


28.02.2019 19:20, Igor Savenko пишет:
> Доброе время суток!
> Подскажите, есть ли вообще способ определить, на какой именно адрес был
> послан запрос (хост имеет несколько интерфейсов с разными адресами или
> несколько secondary адресов на одном интерфейсе), чтобы спроксировать
> этот запрос на корректный адрес upstream. который тоже слушает на localhost.
> Схема проста:
> server {
>     listen *:80;
>     server_name _;
>     location / {
>         proxy_pass http://$server_addr;
>     }
> }
> 
> При этом у хоста 2 адреса на интерфейсах, скажем, 1.2.3.4 и 5.6.7.8.
> Хотелось бы, чтобы при запросе на 5.6.7.8 в $server_addrбыл не 1.2.3.4
> (как первый и дефолтный адрес, а 5.6.7.8). Если можно это решить
> программно (в каком-нибудь модуле, то подскажите, пожалуйста. Спасибо!

Про правильный server_addr не понял, а сейчас что не так?
> # ifconfig lo0
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
>         options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
>         inet6 ::1 prefixlen 128
>         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
>         inet 127.0.0.1 netmask 0xff000000
>         inet 192.168.255.1 netmask 0xffffffff
>         inet 192.168.255.2 netmask 0xffffffff
>         inet 192.168.255.3 netmask 0xffffffff
>         inet 192.168.255.4 netmask 0xffffffff
>         inet 192.168.255.5 netmask 0xffffffff
>         nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
>         groups: lo

> # cat localhost.conf
> server {
>         listen 80;
> 
>         location / { return 200 "$server_addr\n"; }
> }

> # for h in 2 3 4; do curl 192.168.255.$h; done
> 192.168.255.2
> 192.168.255.3
> 192.168.255.4


> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> 


Подробная информация о списке рассылки nginx-ru