我有一个位于Apache代理服务器后面的Icecast服务器,所以从客户端到Icecast的连接是通过这种方式完成的:
客户端-> Apache服务器(反向代理) -> Icecast服务器。
我需要代理的原因是,我需要的网址,通过HTTPS在网站上的冰播,没有找到任何其他解决方案,除了代理HTTPS到端口,冰播坐在,通过超文本传输协议(建议的解决方案是这里- Why Icecast2 does not want to give the stream through https?,虽然那里他们有nginx服务器作为代理)。
Icecast服务器正在显示统计数据-连接到它的客户端的远程ip -我需要该统计数据。可以通过基于Icecast的url的web界面查看统计数据,如下所示:(/admin/listclients.xsl?mount=/mount-point-name).但是在代理连接之后,Icecast在那里显示了错误的远程ip (它总是显示代理服务器ip)。
有没有可能让Icecast在这些统计数据中显示正确的客户端ip (比如放入X-Forwarded-For IP而不是REMOTE_ADDR,因为客户端ip应该由Apache mod_proxy在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>Apache版本: 2.4.7 (在Ubuntu上)
Icecast版本: 2.4.2
发布于 2016-08-11 17:18:22
我再次遇到了这个问题,下面是我如何使用Nginx &Icecast-kh来解决这个问题的:
X-Forwarded-For头部添加到您的Nginx代理配置中:location /stream { proxy_set_header X-Forwarded- $remote_addr;proxy_pass http://stream.radio.com:8000/mount;}}
<x-forwarded-for>127.0.0.1</x-forwarded-for>添加到<paths>标记之间的冰播配置中,其中127.0.0.1是您的代理(通常为127.0.0.1)的IP
发布于 2016-07-02 15:29:11
Icecast目前不支持反向代理(这不仅仅是关于代理头,还有其他问题)。我们正在考虑在2.5中添加完整的支持。
我们强烈建议直接在端口80上运行Icecast。如果是Debian,你需要配置一些东西:http://lists.xiph.org/pipermail/icecast/2015-February/013198.html
发布于 2021-12-10 13:34:50
我只是在Icecast的2.4.4版本之上使用了包含来自kh分支的x-forward-ip支持的created repository。它可以在2.5.0版本发布之前一直使用。
https://stackoverflow.com/questions/38120135
复制相似问题