Последней проблемой при установке и настройке радиостанции было отсутсвие https на контрольной панели, аудиопотоке и json-файлах с метаданными. Icecast автоматически устанавливается по адресу http://127.0.0.69:8000, а сам аудиопоток, соответственно, http://127.0.0.69:8000/listen.mp3
На дворе 2019 год, и любой современный браузер будет если не ругаться, то сообщать о небезопасном сайте, если подключение происходит без https, а значит при добавлении плеера с нашим аудиопотоком страница будет считаться небезопасной. Решение оказалось проще, чем я думал - проксирование с помощью Nginx.
Установка Nginx на Ubuntu:
sudo apt-get update
sudo apt-get install nginx
Идея простая: перенаправлять запрос на нужный адрес с http с какого-нибудь адреса с https (считаем, что домен с SSL, пусть этой будет бесплатный Let's Encrypt, у вас есть): При переходе на https://domain.com/radio получать информацию с http://127.0.0.69:8000/listen.mp3
Файл /etc/nginx/vhosts/www-root/domain.com.conf - конфигурация Nginx для этого домена. Нам нужна часть с location:
location @fallback {
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://127.0.0.1:8080 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
access_log off;
}
Добавляем (не заменяем, а добавляем) часть кода:
location /radio {
proxy_pass http://127.0.0.69:8000/listen.mp3;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
access_log off;
}
}
Таким образом, при переходе на https://domain.com/radio мы получим аудиопоток с [http://127.0.0.69:8000/listen.mp3](http://127.0.0.69:8000/listen.mp3, сохранив https и теперь перед браузером не будет стыдно.
Стоить обновить эту страницу, там всё поменялось...