Получите реальный IP-адрес от слушателя с прокси nginx - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь сделать прокси Icecast / Shoutcast радио с nginx и получить реальный IP-адрес от слушателя.

Если я поставлю localhost ip

location /exampleradio/ {
    proxy_buffering           off;
    proxy_ignore_client_abort off;
    proxy_intercept_errors    on;
    proxy_next_upstream       error timeout invalid_header;
    proxy_redirect            off;
    proxy_connect_timeout     60;
    proxy_send_timeout        21600;
    proxy_read_timeout        21600;

    proxy_set_header Host 127.0.0.1:8000;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;

    proxy_pass http://127.0.0.1:8000;
}

IP-адрес слушателя, он показывает правильно,

Когда я ставлю другое радио с другого примера сервера:

location /exampleradio1/ {
    proxy_buffering           off;
    proxy_ignore_client_abort off;
    proxy_intercept_errors    on;
    proxy_next_upstream       error timeout invalid_header;
    proxy_redirect            off;
    proxy_connect_timeout     60;
    proxy_send_timeout        21600;
    proxy_read_timeout        21600;

    proxy_set_header Host cast.example.com:8000;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;

    proxy_pass http://cast.example.com:8000;
}

ip слушателя на другом сервере, он показывает ip сервера и не ip слушателя . Как я могу решить эту проблему и получить IP-адрес слушателя и IP-адрес сервера?

Спасибо.

1 Ответ

2 голосов
/ 04 апреля 2020

Единственный сервер, который поддерживает заголовок "X-Forwarded-For", это Icecast-kh.

Переключитесь на Icecast-kh, оставьте конфигурацию Nginx как есть и не забудьте добавить

<x-forwarded-for>_PROXY IP HERE_</x-forwarded-for>

в вашу конфигурацию Icecast-kh.

...