Apache 当Icecast在代理后工作时,如何在Icecast统计中查看正确的客户端IP

Apache 当Icecast在代理后工作时,如何在Icecast统计中查看正确的客户端IP,apache,proxy,icecast,Apache,Proxy,Icecast,我在Apache代理服务器后面有一个Icecast服务器,因此从客户端到Icecast的连接是通过这种方式完成的: 客户端->Apache服务器(反向代理)->Icecast服务器。 我需要代理的原因是,我需要在网站上通过HTTPS将URL发送到Icecast,并且除了通过HTTP将HTTPS代理到Icecast所在的端口之外,没有找到任何其他解决方案(建议的解决方案在这里-,尽管他们有nginx服务器作为代理) Icecast服务器正在显示统计数据——连接到它的客户端的远程ip——我需要这些统

我在Apache代理服务器后面有一个Icecast服务器,因此从客户端到Icecast的连接是通过这种方式完成的:
客户端->Apache服务器(反向代理)->Icecast服务器。
我需要代理的原因是,我需要在网站上通过HTTPS将URL发送到Icecast,并且除了通过HTTP将HTTPS代理到Icecast所在的端口之外,没有找到任何其他解决方案(建议的解决方案在这里-,尽管他们有nginx服务器作为代理)

Icecast服务器正在显示统计数据——连接到它的客户端的远程ip——我需要这些统计数据。可以通过以下(/admin/listclients.xsl?mount=/mount point name)的Icecast-base url的web界面查看统计数据。但是在代理连接之后,Icecast会在那里显示错误的远程ip(它总是显示代理服务器ip)

有没有可能让Icecast在这些统计数据中显示正确的客户端ip(比如将X-Forwarded-For-ip放在那里,而不是远程地址,因为客户端ip应该通过Apache mod_代理以X-Forwarded-For头传输到Icecast服务器)

以下是我的Apache代理虚拟主机的配置:

<VirtualHost *:443>

    ServerName my-proxy-server.name

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / http://icecast-server-name:8000/
    ProxyPassReverse / http://icecast-server-name:8000/

    # Some other strings related to SSL-certificate
    .....

</VirtualHost>

ServerName my-proxy-server.name
代理主机
代理请求关闭
ProxyPass/http://icecast-server-name:8000/
ProxyPassReverse/http://icecast-server-name:8000/
#与SSL证书相关的一些其他字符串
.....
Apache版本:2.4.7(在Ubuntu上)

Icecast版本:2.4.2

Icecast目前不支持反向代理(这不仅与代理头有关,还有其他问题)。我们正在考虑在2.5中添加完全支持

我们强烈建议在端口80上直接运行Icecast。
对于Debian,您需要配置一些东西:

我又遇到了这个问题,下面是我如何使用Nginx和Icecast kh解决这个问题的:

  • X-Forwarded-For
    头添加到您的Nginx代理配置中:

    location /stream {
      proxy_set_header X-Forwarded-For $remote_addr; 
      proxy_pass http://stream.radio.com:8000/mount; } 
    }
    
  • 127.0.0.1
    添加到您的Icecast配置中
    标记之间的某个位置,其中
    127.0.0.1
    是您的代理的IP(通常为127.0.0.1)


  • 1.尝试使用icecast kh版本2。不确定Apache,但我让它在Nginx上使用以下配置:
    server{listen 80;server\u name radio.com;…location/stream{proxy\u set\u header X-Forwarded-For$remote\u addr;proxy\u passhttp://stream.radio.com:8000/mount;}….}
    (注意
    X-Forwarded-For
    header)@AlexParamonov你找到了一个与Apache兼容的解决方案了吗?我目前正在努力解决这个问题。