Apache 当Icecast在代理后工作时,如何在Icecast统计中查看正确的客户端IP
我在Apache代理服务器后面有一个Icecast服务器,因此从客户端到Icecast的连接是通过这种方式完成的: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服务器。
我需要代理的原因是,我需要在网站上通过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.2Icecast目前不支持反向代理(这不仅与代理头有关,还有其他问题)。我们正在考虑在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兼容的解决方案了吗?我目前正在努力解决这个问题。